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

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

如何定義類數組 c++

如何定義類數組 c++

C++
一只名叫tom的貓 2018-07-29 13:13:34
構造函數有多個參數如果只有有參數的構造函數是不是就不能構造對象數組?
查看完整描述

2 回答

?
江戶川亂折騰

TA貢獻1851條經驗 獲得超5個贊

應當叫對象數組,不叫類數組

首先構造函數必須要有無參構造函數

定以后對象數組后再調用初始化函數,初始化各對象

class abc{
//私有成員
public:
abc(){};
//其他函數
void init(int a,int b){
//初始化
};
}

int main()
{
abc a[10];
abc *b;
for(int i=0;i<10;i++){
a[i].init(i,1);
}
b=new abc[20];
for(int i=0;i<20;i++){
b[i].init(i,2);
}
//其他過程
}
只有有參構造函數,不能聲明對象數組。必須有無參構造函數
即申明對象數組時,不能使用有參構造函數,初始化數據的傳遞
需要另外對每個數組元素單個調用初始化函數。這樣也有好處每
個數組元素都可以有自己的初始化參數。

可以把有參構造函數完成的功能分開成不需要參數的部分和需要參數的部分
不需要參數的部分,寫成無參構造函數,需要參數的部分寫成初始化函數,
或者干脆無參構造函數寫成空函數,什么都不干,把所有的任務交給初始化函數完成。

查看完整回答
反對 回復 2018-08-01
?
SMILET

TA貢獻1796條經驗 獲得超4個贊

對象數組的初始化函數可以有多個,函數名與對象名相同,屬性應為public。不同的初始化函數以參數的數量、類型來區分,調用時應注意,避免使用模棱兩可的參數導致調用時產生混亂。
如:初始化函數有兩個,第一個的參數為(double a, int b),第二個函數的參數為(int a,double b)。調用時賦與的參數是(3,4),這樣便會導致混亂,不知調用哪個初始函數了。

查看完整回答
反對 回復 2018-08-01
  • 2 回答
  • 0 關注
  • 1307 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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