基類對(duì)象不能引用派生類對(duì)象 關(guān)于C 基類、派生類的引用和指針?
關(guān)于C 基類、派生類的引用和指針?指向基類的指針或引用指向派生類的實(shí)例,這在面向?qū)ο缶幊讨蟹浅3R?。A*PA=New B;這是指向派生類實(shí)例的基類指針。B A&;RB=B這是指向(引用)派生類
關(guān)于C 基類、派生類的引用和指針?
指向基類的指針或引用指向派生類的實(shí)例,這在面向?qū)ο缶幊讨蟹浅3R姟?/p>
A*PA=New B;這是指向派生類實(shí)例的基類指針。
B A&;RB=B這是指向(引用)派生類的基類引用的實(shí)例。
指針PA和參考Rb的訪問范圍完全由PA和Rb定義的范圍決定,與它們所指向的目標(biāo)無(wú)關(guān)。
通過(guò)基類指針或引用訪問派生類實(shí)例的意義在于,這種指針和引用可用于訪問基類下的所有派生類對(duì)象。一方面,可以使用面向?qū)ο蟮摹岸鄳B(tài)性”特性。通過(guò)基類指針或引用調(diào)用虛函數(shù)時(shí),實(shí)際執(zhí)行派生類對(duì)象的函數(shù),使用這種方法,指針或引用端的代碼不需要隨派生類的不同而改變,但可以達(dá)到執(zhí)行最適合派生類的函數(shù)的目的類(即派生類本身的成員函數(shù));另一方面,它可以使程序模塊具有良好的可替換性,用一個(gè)派生類替換另一個(gè)派生類,而程序的其他部分不需要做任何更改就可以正常運(yùn)行并發(fā)揮新的派生類的功能。
PS:基類指針和引用可用于訪問被視為基類對(duì)象的派生類對(duì)象。理論基礎(chǔ)是:派生類對(duì)象也必須是基類對(duì)象。
派生類對(duì)象和基類對(duì)象是什么樣的關(guān)系?
派生對(duì)象可以直接引用基類指針,但派生對(duì)象只能引用基類指針。
基類對(duì)象和派生類對(duì)象有什么關(guān)系?
(1)派生類對(duì)象可以為基類對(duì)象賦值。(2) 派生類對(duì)象可以替換基類對(duì)象來(lái)為基類對(duì)象賦值或初始化基類對(duì)象的引用。(3) 如果函數(shù)的參數(shù)是基類對(duì)象或基類對(duì)象的引用,則相應(yīng)的參數(shù)可以是子類對(duì)象。(4) 派生類對(duì)象的地址可以分配給指向基類對(duì)象的指針變量,即使它指向基類對(duì)象,指向類對(duì)象的指針變量也可以指向派生類的對(duì)象