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);
}
//其他過程
}
只有有參構造函數,不能聲明對象數組。必須有無參構造函數
即申明對象數組時,不能使用有參構造函數,初始化數據的傳遞
需要另外對每個數組元素單個調用初始化函數。這樣也有好處每
個數組元素都可以有自己的初始化參數。
可以把有參構造函數完成的功能分開成不需要參數的部分和需要參數的部分
不需要參數的部分,寫成無參構造函數,需要參數的部分寫成初始化函數,
或者干脆無參構造函數寫成空函數,什么都不干,把所有的任務交給初始化函數完成。

TA貢獻1796條經驗 獲得超4個贊
對象數組的初始化函數可以有多個,函數名與對象名相同,屬性應為public。不同的初始化函數以參數的數量、類型來區分,調用時應注意,避免使用模棱兩可的參數導致調用時產生混亂。
如:初始化函數有兩個,第一個的參數為(double a, int b),第二個函數的參數為(int a,double b)。調用時賦與的參數是(3,4),這樣便會導致混亂,不知調用哪個初始函數了。
- 2 回答
- 0 關注
- 1307 瀏覽
添加回答
舉報