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

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

請(qǐng)教一下,我該如何使outc()函數(shù)正常輸出?

請(qǐng)教一下,我該如何使outc()函數(shù)正常輸出?

C++
嗶嗶one 2022-12-08 13:09:11
#include<iostream>#include<vector>using namespace std;class A{protected: vector<int> a;public:A(){};A(int x){}; virtual void outc(){};};class B:public A{public:B(){};B(int x){cout<<x<<endl;a.push_back(x);}void outc(){for(int i=0;i<a.size();i++)cout<<a[i]<<" ";} };int main(){B(1);B(2);B(3);B(4);B(5);B b1;b1.outc();return 0;}
查看完整描述

3 回答

?
牛魔王的故事

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

B(1);
B(2);
B(3);
B(4);
B(5);
這是五個(gè)不同的實(shí)例,所以只是通過(guò)cout<<x<<endl;打印了一下

b1沒(méi)有初始化,所以vector里面沒(méi)有值,outc不會(huì)輸出任何東西。

如果你希望b1.outc能打印出12345,那就意味著不同的實(shí)例要共享數(shù)據(jù),可以通過(guò)把vector聲明問(wèn)static實(shí)現(xiàn)。

查看完整回答
反對(duì) 回復(fù) 2022-12-10
?
白板的微信

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

1 現(xiàn)在代碼本來(lái)就是能夠正常輸出?。?br/>2 是不是你的預(yù)期是想在 b1.outc()的時(shí)候輸出“1 2 3 4 5 ”??
如果是這樣:
把vector<int> a; 修改為: static vector<int> a;

并且在類A后增加一句: vector<int> A::a ;
這樣能能在b1.outc()的時(shí)候輸出: 1 2 3 4 5

查看完整回答
反對(duì) 回復(fù) 2022-12-10
?
GCT1015

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

我試了一下,


    void outc()    {        for(int i = 0; i < a.size(); i++)        cout << a[i] <<'\t';        int main(){    B a(1);    a.outc();    B b(2);    b.outc();    B c(3);    c.outc();    B d(4);    B e(5);    B b1;} 這樣的輸出是:1     2      3     百度居然不給貼圖。。。。看出來(lái)沒(méi),這就是繼承的特點(diǎn)會(huì)為每一個(gè)繼承類創(chuàng)建新的數(shù)據(jù)存儲(chǔ)空間,也就是說(shuō)一個(gè)B的對(duì)象有一個(gè)vector<int> a,而b1對(duì)象沒(méi)有push數(shù)據(jù),所有就沒(méi)有輸出?。。?/code>



查看完整回答
反對(duì) 回復(fù) 2022-12-10
  • 3 回答
  • 0 關(guān)注
  • 182 瀏覽

添加回答

舉報(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)