c中指向派生類指標問題,C 中指向派生類指標問題

2022-02-14 08:20:02 字數 650 閱讀 7679

1樓:匿名使用者

先看兩個知識點:

1.c++中基類和派生類遵循型別相容原則:

即可用派生類的物件去初始化基類的物件,

可用派生類的物件去初始化基類的引用,

可用派生類物件的地址去初始化基類物件指標。

2.c++中動態繫結條件發生需要滿足2個條件:

(1)只有指定為虛擬函式的成員函式才能進行動態繫結,成員函式預設為非虛擬函式,非虛擬函式不能進行動態繫結

(2)必須通過基類型別的引用或指標進行函式呼叫father *p=new son即是用son初始化了一個father類指標(型別相容原則第三條);

多型(動態繫結)的實現靠的就是虛擬函式,一個類有虛擬函式,則有虛表,father有father的虛表,son有son的虛表,用一個vptr指標標記虛表入口。若father裡有虛擬函式fun,son重寫fun函式,則p->fun實際呼叫的是son中的fun,若son未重寫fun,則呼叫father中的fun;這就是多型(動態聯編);

2樓:志遠

p當然是指向son了,new誰就指向誰,否則還叫指標麼~~

不過如果father有虛擬函式,則物件的記憶體會有個虛擬函式表,如果son重寫了虛擬函式,那麼通過指標呼叫father的虛擬函式,實際上在虛擬函式錶轉了個彎跑son的實現裡去了。

C 中指標問題

正解 我第一次知道 int a 然後使用 a的時候,居然是引用。c 學得真好,那請問 int b 又是什麼呢?交換的是資料。void swap int px,int py 這個 在執行的時候會建立指標地址的副本,而不是資料本身。但在方法體內用到了解引用。看它的swap部分 void swap int...

C中指標本身的值和指標指向的值有什麼區別

指標本身pa的值是一個變數的地址 a,而指標pa指向的值是變數a的值,不知道說清楚沒有。1.指標本身是一抄個變數,存放的值襲是32位的無符號整數,這個整數是一個32位的地址。2.通過這個32位的整數地址值,可以找到另外一個資料,就是這個指標指向的資料了,可以是任何了型別的資料。也就是指標指向的值了。...

c中指標怎麼用,c語言中指標怎麼使用

int p 宣告一copy個指向int的指標pint a a 3 p a printf d p 列印a的地址printf d p 列印a的值 p 4 改變a的值。printf d a 列印a的值為4 推薦看書 c和指標 這裡最好的回答吧,指標可不是一天兩天能夠學會的 c語言中指標怎麼使用?1 使用場...