【初心者歓迎】C/C++室 Ver.9【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0169デフォルトの名無しさん
NGNG何度もいいますようにmyfoo(i, j);というのは関数の呼び出しです。コンストラクタの
呼び出しではありません。そしてmyfoo(int, int)という関数が宣言されていないので
エラーになるのだと思います。
どうしても初期化リストではなくコンストラクタ内からコンストラクタを呼び出すので
あれば、newの配置構文(placement-new)を使うか、単純にfoo型の一時オブジェクト
を作って代入してやればよいです。
class hoge {
int i;
int j;
foo myfoo;
public:
hoge() {
i = 100;
j = 200;
myfoo = foo(i, j); //foo型の一時変数を代入
// new (&myfoo) foo(i, j); //こちらでもよい
}
void printfoo() const { myfoo.printfoo(); }
};
■ このスレッドは過去ログ倉庫に格納されています