C override 關鍵字用法

2021-07-11 11:57:10 字數 749 閱讀 3102

override關鍵字作用:

如果派生類在虛函式宣告時使用了override描述符,那麼該函式必須過載其基類中的同名函式,否則**將無法通過編譯。

舉例子說明

struct base 

;struct derivedmid: public base

;struct derivedtop : public derivedmid

;

(之前聽過,但是沒看過結構體重載 ==)

如果沒有使用override關鍵字,上面的寫法編譯可以通過但是執行的效果與真實意願(希望過載)不符

舉例子說明

class

testoverride

;class

b: public testoverride

;

上面的1-5個過載函式編譯過程中,除了返回值不同的infor會報錯以外,其他函式都不會有問題,但是在類例項化的時候會提示是抽象類,因為他們都沒有真正實現過載

class

c: public testoverride

;

新增了override以後,會在編譯器override修飾符則可以保證編譯器輔助地做一些檢查,上面的情況無法通過編譯

結論 如果派生類裡面是像過載虛函式 就加上關鍵字override 這樣編譯器可以輔助檢查是不是正確過載,如果沒加這個關鍵字 也沒什麼嚴重的error 只是少了編譯器檢查的安全性

C override 關鍵字用法

override關鍵字作用 如果派生類在虛函式宣告時使用了override描述符,那麼該函式必須過載其基類中的同名函式,否則 將無法通過編譯。舉例子說明 struct base struct derivedmid public base struct derivedtop public derive...

const關鍵字用法

1 const常量 如const int max 100 優點 const常量有資料型別,而巨集常量沒有資料型別。編譯器可以對前者進行型別安全檢查,而對後者只進行字元替換,沒有型別安全檢查,並且在字元替換時可能會產生意料不到的錯誤 邊際效應 2 const修飾類的資料成員 class a const...

restrict關鍵字用法

概括的說,關鍵字restrict只用於限定指標 該關鍵字用於告知編譯器,所有修改該指標所指向內容的操作全部都是基於 base on 該指標的,即不存在其它進行修改操作的途徑 這樣的後果是幫助編譯器進行更好的 優化,生成更有效率的彙編 舉個簡單的例子 int foo int x,int y 很顯然函式...