C 賦值相容原則

2021-06-18 02:45:03 字數 921 閱讀 3565

c++賦值相容原則

賦值相容規則是指在需要基類物件的任何地方都可以使用公有派生類的物件來替代。通過公有繼承,派生類得到了基類中除建構函式、析構函式之外的所有成員,而且所有成員的訪問控制屬性也和基類完全相同。這樣,公有派生類實際就具備了基類的所有功能,凡是基類能解決的問題,公有派生類都可以解決。賦值相容規則中所指的替代包括以下的情況: 

1>派生類的物件可以賦值給基類物件。

2>派生類的物件可以初始化基類的引用。

3>派生類物件的位址可以賦給指向基類的指標。

在替代之後,派生類物件就可以作為基類的物件使用,但只能使用從基類繼承的成員。

#include using namespace std;

class b0

};class b1 : public b0 };

class d1 : public b1 };

void fun(b0 *ptr)

int main()

程式執行結果:

結論:
由執行結果可知,當派生類的物件當成基類的物件使用時,呼叫的都是基類的成員函式和資料成員;
思考題:
當b0中的display用virtual修飾時,輸出結果會是怎樣的呢?
class b0
};
輸出結果:

c 賦值相容原則

define crt secure no warnings include using namespace std class parent parent int a void func1 void func3 int c int d static int e private int a 子類也會繼...

類的賦值相容原則

1 子類物件可以當作父類物件使用 2 子類物件可以直接賦值給父類物件 3 子類物件可以直接初始化父類物件 4 父類指標可以直接指向子類物件 5 父類引用可以直接引用子類物件 include using namespace std 1 子類物件可以當作父類物件使用 2 子類物件可以直接賦值給父類物件 ...

C C 中同名覆蓋原則和賦值相容原則

同名覆蓋原則 派生類與基類中有相同成員時 若未強行指名,則通過派生類物件使用的是派生類的同名成員 如果要通過派生類的物件訪問基類被覆蓋的同名成員,需要加 物件名.基類名 同名成員 來限定 二義性解決方法 一 用類名來限定 二 採用同名覆蓋原則 在多繼承時,基類與派生類之間,或基類之間出現同名成員時,...