#include using namespace std;
//peasant繼承自human,human繼承自cre
//基類,生物類
class cre
//析構函式
~cre()
//成員函式:
int gethp()
void sethp(int hp)
int getdef()
int getact()
void move()
void attack()
};class human : public cre
//析構函式
~human()
//成員函式
//};
class peasant : public human
//析構函式
~peasant()
//成員函式
//名字隱藏,函式名和父類的相同。只要函式名相同就會隱藏,不管乙個是不是有參另乙個是不是無參。那返回值又關麼?別問,自己試一試。
void move()
//名字隱藏
void attack(string name)
//名字隱藏
void work()
};int main()
/* 一次執行結果
cre(i,i,i),0x7fffe8703670
human(), 0x7fffe8703670
cre is moving
cre is attacking
100**********
cre(i,i,i),0x7fffe8703660
human(), 0x7fffe8703660
work work ...0x7fffe8703660
peasant move
peasant attackedmk
cre is attacking
mork work
cre is moving
**********
oh,i'll dead.0x7fffe8703660
~human(), 0x7fffe8703660
~cre(), 0x7fffe8703660
~human(), 0x7fffe8703670
~cre(), 0x7fffe8703670
*/
C 之名字隱藏
在c 中,當你使用乙個包含了過載方法的類時,並且當你繼承和重寫這個方法後,你必須重寫所有過載的方法。例子 class firstclass void firstclass methoda int i void firstclass methoda int i,int j 這個簡單類有兩個方法 乙個過...
名字隱藏與過載
一.繼承不會改變作用域 繼承不會改變類成員的作用域,基類的成員永遠都是基類的成員,並不會因為繼承而變成子類的成員 class human class student public human 一.隱藏不是過載 因為作用域的不同,分別在子類和基類中定義的同名成員函式 包括靜態成員函式 並不構成過載關係...
對C 名字隱藏的理解
overwrite 重寫 是指派生類的函式遮蔽了與其同名的基類函式,規則如下 1 如果派生類的函式與基類的函式同名,但是引數不同。此時,不論有無virtual關鍵字,基類的函式將被隱藏 注意別與過載混淆 如何理解這句呢?看這個例子 class firstclass void firstclass m...