第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

被覆蓋的父類成員函數(shù)還是可以被調(diào)用的

就這次的作業(yè)題來(lái)看,如果運(yùn)行

Animal *p = new Dog();

p->eat();//Dog--eat()

p->Animal::eat();//Animal--eat()

表明,并沒(méi)有被覆蓋掉呀??怎么回事?

正在回答

5 回答

隱藏就這么用

0 回復(fù) 有任何疑惑可以回復(fù)我~

覆蓋只是在虛函數(shù)列表中將函數(shù)指針替換掉。 如果通過(guò)類去訪問(wèn),還是可以訪問(wèn)的。

0 回復(fù) 有任何疑惑可以回復(fù)我~

指針可以指向不同的對(duì)象,可以指動(dòng)物也可以指狗,當(dāng)然此處默認(rèn)為指向狗。覆蓋僅指父類中有virtual修飾的函數(shù)且子類中剛好有同名函數(shù),則發(fā)生覆蓋,即子類虛函數(shù)表中的子類虛函數(shù)入口地址的值會(huì)覆蓋掉此子類虛函數(shù)表中的父類的虛函數(shù)入口地址的值。

0 回復(fù) 有任何疑惑可以回復(fù)我~

指針p雖然指向Dog的對(duì)象,但是指針p依然是父類Animal的一部分。用指針p依然可以調(diào)用Animal的虛表,通過(guò)虛表指針調(diào)用其成員函數(shù)!

0 回復(fù) 有任何疑惑可以回復(fù)我~

#include <iostream>

#include <stdlib.h>

#include <string>

using namespace std;


/**

?*? 定義動(dòng)物類:Animal

?*? 成員函數(shù):eat()、move()

?*/

class Animal

{

public:

? ? // 構(gòu)造函數(shù)

? ? Animal(){cout << "Animal" << endl;}

? ? // 析構(gòu)函數(shù)

virtual ~Animal(){cout << "~Animal" << endl;}

? ? // 成員函數(shù)eat()

virtual? void eat(){cout << "Animal -- eat" << endl;}

? ? // 成員函數(shù)move()

virtual void move(){cout << "Animal -- move" << endl;}

};


/**

?* 定義狗類:Dog

?* 此類公有繼承動(dòng)物類

?* 成員函數(shù):父類中的成員函數(shù)

?*/

class Dog : public Animal

{

public:

? ? // 構(gòu)造函數(shù)

Dog(){cout << "Dog" << endl;}

? ? // 析構(gòu)函數(shù)

virtual ~Dog(){cout << "~Dog" << endl;}

? ? // 成員函數(shù)eat()

virtual? void eat(){cout << "Dog -- eat" << endl;}

? ? // 成員函數(shù)move()

virtual void move(){cout << "Dog -- move" << endl;}

};


int main(void)

{

? ? // 通過(guò)父類對(duì)象實(shí)例化狗類

Animal *p=new Dog();

? ? // 調(diào)用成員函數(shù)

p->eat();

p->Animal::eat();//依然可以運(yùn)行這句話,什么情況?

? ? p->move();

? ? // 釋放內(nèi)存

? ? delete p;

? ? p=NULL;

? ??

return 0;

}


0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
C++遠(yuǎn)征之多態(tài)篇
  • 參與學(xué)習(xí)       66225    人
  • 解答問(wèn)題       329    個(gè)

本教程將帶領(lǐng)大家體會(huì)面向?qū)ο笕筇匦灾械亩鄳B(tài)特性

進(jìn)入課程

被覆蓋的父類成員函數(shù)還是可以被調(diào)用的

我要回答 關(guān)注問(wèn)題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)