プロが教えるわが家の防犯対策術!

例えばコンストラクタのオーバーロードで以下のようなクラスを宣言したとします。
class testClass{
public:
testClass(void){
num = 10;
}
testClass(int num1,int num2){
num = num1 + num2;
}
int num;
};

オブジェクトとして宣言する場合
testClass obj(10,10);
と定義とすれば、testClass(int num1,int num2)の方が適用されobj.num = 20となり、問題ありませんが、ここでobjを複数定義したい場合、obj[10]と定義すると上手く引数を渡す事ができません。

以下のような形で宣言するという手もありますが
testClass obj[2] = {testClass(2,2),testClass(2,2)};
例えば定数NUMと定義しておき、
testClass obj[NUM];
という形で宣言したい場合、どのようにすればよいでしょうか?

よろしくお願いします。

A 回答 (1件)

無理。


配列の場合、"引数なし"あるいは(デフォルト引数により)"引数なしとみなされ"なくてはなりません。

vector<testClass> ならばできなくもないけども。
    • good
    • 0
この回答へのお礼

なるほど、無理でしたか…。
別の関数を作るなどして対処したいと思います。

ありがとうございました。

お礼日時:2007/11/18 16:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!