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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

寫(xiě)出下面程序的運(yùn)行結(jié)果,請(qǐng)給出詳細(xì)思路

寫(xiě)出下面程序的運(yùn)行結(jié)果,請(qǐng)給出詳細(xì)思路

C++
犯罪嫌疑人X 2018-07-06 10:18:43
#include using namespace std;class Base{int x;public:Base(int b):x(b){}virtual void display(){cout< }};class Derived:public:Base{int y;public:Derived(int d):Base(d):y(d){}void display(){cout }};int main(){Base b(3);Derived d(4);b.display();d.display();Base *p=&d;p->display();return ();}
查看完整描述

1 回答

?
慕的地6264312

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊

首先,你的程序是錯(cuò)的,討論一個(gè)無(wú)法編譯的程序的結(jié)果毫無(wú)意義。

所以,我修改了這個(gè)程序,在修改的時(shí)候我盡量保持它和你的意圖保持一致,但是你原先是什么意圖,我并不能100%知道,所以這個(gè)前提你必須知道。

下面是修正的程序,我的分析基于這個(gè)程序:

#include <iostream>
using namespace std;
class Base{
int x;
public:
Base(int b):x(b){}
virtual void display()
{
    cout<<x<<endl;
}
};
class Derived:public Base{
int y;
public:
Derived(int d):Base(d),y(d){}
void display(){
cout<<y<<endl;
}
};
int main(){
Base b(3);
Derived d(4);
b.display();
d.display();
Base *p=&d;
p->display();
return 0;
}

這個(gè)程序的結(jié)果是
3
4
4


第一行輸出3,這個(gè)沒(méi)什么好分析的,
第二行,你的構(gòu)造函數(shù)傳入了4,這個(gè)構(gòu)造函數(shù)分別將base里定義的x和Derived定義的y設(shè)置成了4
d.display();調(diào)用的是派生類的display,輸出的是y,也就是4
第三行p->display();調(diào)用的是虛函數(shù)display,因?yàn)榕缮惛采w了display,所以還是調(diào)用的派生類的display,此時(shí)輸出的還是派生類的y,所以還是4。

再多說(shuō)一句,如果去掉virtual void display()的virtual,結(jié)果雖然還是 3 4 4,但是這兩個(gè)4的含義就不同了,前者是派生類的y,后者是基類的x
最后說(shuō)一句,基類的display永遠(yuǎn)看不見(jiàn)派生類的y。


查看完整回答
反對(duì) 回復(fù) 2018-08-05
  • 1 回答
  • 0 關(guān)注
  • 966 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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