以下のコードでコンパイル エラーが発生しますが、コピー コンストラクター ステートメントを削除すると、同じエラーがコンパイルされます。
誰でもこの動作について教えてもらえますか?
class MyClass
{
private:
int i;
MyClass(MyClass &);
public:
MyClass():i(0){}
};
int main(){
MyClass obj = MyClass();
return 0;
}
エラーは次のとおりです。
MyClass.cpp: In function ‘int main()’: MyClass.cpp:15:24: error: no matching function for call to ‘MyClass::MyClass(MyClass)’ MyClass.cpp:15:24: note: candidates are: MyClass.cpp:11:2: note: MyClass::MyClass(MyClass&) MyClass.cpp:11:2: note: no known conversion for argument 1 from ‘MyClass’ to ‘MyClass&’ MyClass.cpp:10:2: note: MyClass::MyClass() MyClass.cpp:10:2: note: candidate expects 0 arguments, 1 provided