C 之名字隱藏

2021-06-07 13:04:47 字數 561 閱讀 4229

在c++中,當你使用乙個包含了過載方法的類時,並且當你繼承和重寫這個方法後,你必須重寫所有過載的方法。

例子:

class firstclass ;

void firstclass::methoda (int i)

void firstclass::methoda (int i, int j)

這個簡單類有兩個方法(乙個過載方法),如果你想重寫只有乙個引數的版本,你可以這樣:

class secondclass : public firstclass ;

void secondclass::methoda (int i)

void main ()

然而,第二個呼叫會失敗,因為兩個引數的方法methoda 是不可見的。這個就是名字隱藏。

class father

};class child:public father

};int main()

同樣地父類中的函式被隱藏了

C 技巧之名字空間namespace

c的開發人員會經常使用 define,即用巨集來宣告常量,但巨集卻是全域性的,對大的工程很難維護,經常是導致名字衝突。還好,c 給我們帶來了namespace名字空間。它的使用如下,名字空間可以把一組邏輯分組,同時名字空間也是一種作用域。view plain copy to clipboard pr...

C 技巧之名字空間namespace

原文 c的開發人員會經常使用 define,即用巨集來宣告常量,但巨集卻是全域性的,對大的工程很難維護,經常是導致名字衝突。還好,c 給我們帶來了namespace名字空間。它的使用如下,名字空間可以把一組邏輯分組,同時名字空間也是一種作用域。namespace outspname class kl...

繼承 名字隱藏

include using namespace std peasant繼承自human,human繼承自cre 基類,生物類 class cre 析構函式 cre 成員函式 int gethp void sethp int hp int getdef int getact void move voi...