派生類可以對基類的成員函式進行重定義或過載:
重定義是指派生類可以定義與基類具有相同函式原型(即具有相同的返回型別、函式名及引數列表)。
基類的public成員在派生類中不存在過載和重定義的情況下,基類物件可以正常訪問基類public成員,但是派生類對基類成員函式的重定義或過載會影響基類成員在派生類中的可見性,基類的同名函式會被派生類過載的或重定義的同名函式所隱藏,如果要訪問基類的成員函式,需要通過限定符訪問。
基類base:
派生類derived:class base
~base(){}
void setx(int i)
void
set(int n)
void print()
private:
int x;
};
基類的資料成員和成員函式在派生類中都有乙份拷貝,在派生類中,可以直接訪問從基類繼承而來的pbulic和protected成員,就好像這些成員是派生類自己定義的一樣,而從基類中繼承而來的private成員只能通過基類的public或者protected成員間接訪問。//宣告
class derived :public base
;//定義
derived::derived()
derived::~derived()
void derived::set(int p,int k)
void derived::set(int i, int j, int k)
void derived::print()
int derived::set(int i)
//函式呼叫
int _tmain(int argc, _tchar* argv)
派生類對基類成員的訪問大致有以下幾種方式:
通過派生類物件直接訪問基類成員
在public繼承方式下,基類的public成員在派生類中也是public,可以被派生類物件的外部函式直接訪問。
在派生類成員函式中直接訪問基類成員
在public,protected,private三種繼承方式下,基類的public和protected成員可以被派生類的成員函式直接訪問。
通過基類名字限定符訪問被過載的基類成員名
在派生類中被過載或重定義的基類成員,只有通過基類的類名限定才能訪問。
基類與派生類
初學c 的時候,很多人都很頭疼各種訪問標號下基類與派生類的關係,其實,死記硬背肯定不是乙個好的辦法,要知道它們之間的關係,先要分析一下訪問標號是如何產生的 在沒有繼承之前,類的只有兩類使用者 類本身和類的使用者。把類成員通過public和private劃分恰好體現了這一分割 類的使用者只能訪問類的p...
派生類和基類的關係
c 乙個主要目標是提供 重用,類繼承是實現該目標的重要途徑之一。從乙個類派生出另乙個類時,原始類稱為基類,繼承類稱為派生類。派生類和基類的關係 1.派生類物件儲存了基類的資料成員 2.派生類物件可以使用基類的方法 如下例 class baseclass class derivclass public...
派生類和基類的關係
例如以下類 class tabletennisplayer void resettable bool v 派生類 class ratedplayer public tabletennisplayer void resetrating unsigned int r tabletennisplayer ...