繼承
class 派生類:[訪問限定符] 基類;
/
『public』
『protected』
『private』
類成員函式√√
√友元函式√√
√子類函式√√
×類物件√×
×
子類繼承類父類所有的成員變數和成員函式。與訪問限定 符無關。訪問限定符只是限制了訪問。子類內部訪問『public』繼承的父類成員變數子類訪問父類成員變數,把父類成員變數訪問限制符,改為『protected』。
class base;
class derive:public base;
protected:
void
protected_func(){};
private:
void
private_func(){};
};class derive:public base
};
『public』
『protected』
『private』
public 繼承√√
protected 繼承√√
private 繼承√√
子類內部訪問父類成員,只能訪問『public』和『protected』成員。『public』
『protected』
『private』
public 繼承√×
protected 繼承××
private××
子類只有『public』繼承父類的時候,才能訪問父類的『public』成員,其他都不能訪問。子類物件訪問父類成員訪問限定符的變化通常子類使用『public』繼承父類。
|』public』
『protected』
『private』
public 繼承
『public』
『protected』
protected 繼承
『protected』
『protected』
private 繼承
『private』
『private』
* 派生類的建構函式與析構函式的呼叫順序
* 派生類的構造函式呼叫順序:子物件構造、成員變數構造、父物件構造的順序
* 派生類的析構函式呼叫順序:子物件析構、成員變數析構、父物件析構的順序
#include
using
std::cout;
using
std::endl;
class member
~parent()
};class son:public parent
~son();
int main()
沒有預設建構函式的基數在派生類的初始化,必須在初始化列表中初始化
#include
using
std::cout;
using
std::endl;
class base
解決方法:
『derived』類中的名稱會隱藏 『base』類中同名的名稱,在』public』繼承中我們可以通過引入』using』宣告。
函式同名的情況總結名稱
英語過載
overload
重寫(覆蓋)
override
隱藏hide
* 賦值相容規則:在任何需要基類物件的地方都可以使用公有的派生類物件來代替。反之,不可。
向上轉換:派生類物件賦值給基類向下轉換:基類物件賦值給派生類
派生類物件可以賦值給基類的物件
int main()
引用訪問派生類中由基類繼承來的物件,不能訪問派生類中的新成員
class 類名:[訪問限定符]基類1,[訪問限定符] 基類2
;
多重繼承基類構造順序:??
class 類名:publc
virtual 基類;
虛基類是乙個相對概念,在虛繼承關係中,父類相對於子類是虛基類虛基類與普通基類的構造順序:先構造虛基類,然後構造普通基類
C 基礎 繼承
如果乙個類的成員被定義成該類的私有成員,那麼只有基類的成員和友元可以訪問類中的私有成員。同時派生類也無法訪問基類的私有成員,派生類的例項物件也無法訪問這些私有成員。如果派生類為公有繼承,基類成員保持自己的訪問級別 基類的public成員為派生類的public成員,基類的protected成員為派生類...
C 繼承基礎
一,繼承和多型 類之間的繼承 基類,父類 成員變數 描述類的屬性 成員函式 功能 派生類 子類 體現出與基類的不同 繼承 基類與派生類之間訪問許可權 1.public繼承 基類裡面的公有成員變數被繼承後在派生類中也是公有的 可以在類外被訪問 基類裡面的保護成員變數被繼承後在派生類中可以被訪問,在派生...
C 繼承之繼承基礎
一 繼承的相關概念 繼承是 種復 段,在繼承關係 子類繼承父類的成員,由此達到復 的 的。通過繼承定義乙個類,繼承是型別之間的關係建模,共享公有的東西,實現各自本質不同的東西。二 三種訪問限定符 繼承關係 三 繼承的重要說明1.子類擁有父類的所有成員變數和成員函式 2.子類就是一種特殊的父類 3.子...