在《c++ primer》中搜尋「遮蔽」,會搜尋到在不同作用域中宣告或定義同名函式或變數的一些常見問題和規則,諸如:
「在函式內定義乙個與函式可能會用到的全域性變數同名的區域性變數總是不好的。區域性變數最好使用不同的名字。」
「。 在函式中區域性宣告的名字將遮蔽在全域性作用域(第 2.3.6 節)內宣告的同名名字。這個關於變數名字的性質對
於函式名同樣成立」
「一般的作用域規則同樣適用於過載函式名。如果區域性地宣告乙個函式,則該函式將遮蔽而不是過載在外層作用域中宣告的同名函式。由此推論,每乙個版本的過載函式都應在同乙個作用域中宣告。
一般來說,區域性地宣告函式是一種不明智的選擇。函式的宣告應放在標頭檔案中。」
等等
C 子類和父類同名成員變數或函式
在c 中子類和父類同名成員時候c 版本不同處理的方式也不同。下面是我使用visual c 2015 update 3的測試結果 測試 如下 include using namespace std class base virtual void print base class public base...
C 之成員函式宣告為虛函式的規則
虛函式 定義 虛函式必須是基類的非靜態成員函式,其訪問許可權可以是protected或public,是c 多型的一種表現。作用 實現動態聯編,也就是在程式的執行階段動態地選擇合適的成員函式,在定義了虛函式後,可以在基類的派生類中對虛函式重新定義,在派生類中重新定義的函式應與虛函式具有相同的形參個數和...
繼承中的同名成員變數處理方法
1 當子類成員變數與父類成員變數同名時 2 子類依然從父類繼承同名成員 3 在子類中通過作用域分辨符 進行同名成員區分 在派生類中使用基類的同名成員,顯式地使用類名限定符 4 同名成員儲存在記憶體中的不同位置 總結 同名成員變數和成員函式通過作用域分辨符進行區分。如下 include using n...