《C 同名函式》同名隱藏與賦值

2021-09-17 05:09:00 字數 427 閱讀 6942

#includeusing namespace std;

class base

~base()

{}public:

void show()

*/

派生與基類:

在任何需要基類物件的地方都可以死用公有派生類的物件來代替,這條規則稱 賦值相容規則。它包括以下情況:

1- 派生類的物件可以賦值給基類的物件,這時把派生類物件中,從對應基類中繼承來的隱藏物件賦值給基類物件。反過來不行,因為派生類的新成員五值可賦。

2-可以將乙個派生類的物件的位址賦給其基類的指標變數,但只能通過這個指標訪問派生類中由基類繼承來的隱藏物件,不能訪問派生類中的新成員。同樣也不能反過來做。

3-派生類物件可以初始化基類的引用。引用是別名,但這個別名只能包含派生類物件中的由基類繼承來的隱藏物件。

同名隱藏與賦值相容規則

在繼承體系中我們的編寫派生類一般可分四個步驟 1 吸收基類成員 除建構函式和析構函式外全部接收 2 改造基類成員 宣告乙個和某基類成員的新成員,派生類中的新成員就遮蔽了基類同名成員稱為同名隱藏 3 發展新成員 派生類新成員必須與基類成員不同名,它的加入保證派生類在功能上有所發展 4 重寫建構函式和析...

過載,同名隱藏與覆蓋

過載的條件是在同乙個作用域內,兩個同名的不同引數列表的函式 返回值型別不做考慮 之間形成過載關係。派生類宣告了乙個與基類同名的函式 成員變數也可以 函式名相同,引數列表無所謂。訪問方式 物件名.fun 訪問到的函式是在派生類中新增的成員函式。被隱藏之後的從基類繼承的同名函式,依然存在。訪問方式 物件...

C 繼承 同名隱藏 覆蓋,虛函式

不同作用域宣告的識別符號的可見性原則 如果存在兩個或多個具有包含關係的作用域,外層宣告了乙個識別符號,而內層沒有再次宣告同名識別符號,那麼外層識別符號在內層依然可見,如果在內層宣告了同名識別符號,則外層識別符號在內層不可見,這時稱內層識別符號隱藏了外層同名識別符號,這種現象稱為隱藏規則。在類的派生層...