コンストラクタに問題があります。 私は2つのクラス(MyClass1、MyClass2)を持っています。エラーC2512:適切なデフォルトコンストラクタがありません:引数を持つオブジェクトの宣言!コンストラクタ内部
MyClass1.h
class MyClass1 {
public:
MyClass1();
...
private:
MyClass2 object;
...
}
MyClass1.cpp
#include "MyClass1.h"
MyClass1::MyClass1() { //This constructor causes the error!!!
object = MyClass2(1000);
...
}
...
MyClass2.h
class MyClass2 {
public:
MyClass2(int);
...
private:
int id;
...
}
MyClass2.cpp
#include "MyClass2.h"
MyClass2::MyClass2(int id) {
this->id = id;
...
}
...
「MyClass1」のインスタンスを作成するとき、私は、このエラーメッセージが表示されます。
error C2512: 'MyClass2': no appropriate default constructor available
ではなく、コンストラクタ本体でそれを行うのメンバ変数を初期化する初期化子リストを使用してください。 – user0042
'MyClass1.cpp'の' #include "MyClass2.h"はどこにありますか?あなたが 'MyClass2'を参照しているので、それがそこにあるはずです。 – InternetAussie