繼承的賦值

2021-06-19 07:17:56 字數 472 閱讀 9434

不能將父類的物件賦值給子類物件

因為物件的賦值操作呼叫了乙個函式 operator=()函式,該函式會將運算子右邊的這個物件的成員賦給左邊的物件

#include

class father

private:

int x;

};class son:public father

;int main()

operator=()函式是左邊物件呼叫的,所以賦值操作以左邊物件為準

基類的指標可以指向派生類的物件,但是派生類的指標不可以指向基類的物件

son*p1=&a ;//因為派生類的物件所佔的儲存空間通常要比基類的物件大

派生類處理繼承基類的成員之外,還擁有自己的成員,所以在用基類的指標操作派生類的物件時,由於基類指標會像

操作基類物件那樣操作派生類物件,而基類物件所

占有的記憶體空間又通常會小於派生類物件,所以基類指標不會超出派生類物件去運算元據。

多型 繼承 final成員賦值

繼承 方法覆蓋 父類引用指向子類例項 物件 哪些成員不能被繼承 1 修飾符 static修飾的方法不能被繼承覆蓋 2 修飾符 final修飾的方法不能被重寫 覆蓋 3 許可權修飾符 private修飾的方法不能被繼承覆蓋 4 父類中的構造方法不能被繼承 自己定義乙個類,類中定義3個成員變數,這3個成...

C 賦值號能否被繼承

在c 中,普通函式能夠被繼承,但是析構函式和建構函式不能被繼承。這裡有個問題,c 賦值號能否被繼承?看以下 include using namespace std class a public a a 0 cout a operator a aa cout this a aa.a return th...

C 賦值操作符不能繼承

在網上搜尋相關資料時,看到有人說,賦值操作符可以被繼承,並且給出了乙個例子。一時間,也沒想出那個例子錯在 例子 如下 include using namespace std class a class b publica void printnum intmain 在上面這個例子中,派生類呼叫了基類...