亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問我該如何使outc()函數正常輸出?

請問我該如何使outc()函數正常輸出?

長風秋雁 2023-02-12 17:13:43
#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;}
查看完整描述

2 回答

?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

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

b1沒有初始化,所以vector里面沒有值,outc不會輸出任何東西。

如果你希望b1.outc能打印出12345,那就意味著不同的實例要共享數據,可以通過把vector聲明問static實現。

查看完整回答
反對 回復 2023-02-15
?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

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

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

查看完整回答
反對 回復 2023-02-15
  • 2 回答
  • 0 關注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號