class MyClass
{
public:
~MyClass() {}
MyClass():x(0), y(0){} //default constructor
MyClass(int X, int Y):x(X), y(Y){} //user-defined constructor
MyClass(const MyClass& tempObj):x(tempObj.x), y(tempObj.y){} //copy constructor
private:
int x; int y;
};
int main()
{
MyClass MyObj(MyClass(1, 2)); //user-defined constructor was called.
MyClass MyObj2(MyObj); //copy constructor was called.
}
最初のケースでMyClass(1, 2)は、ユーザー定義コンストラクターを呼び出してオブジェクトを返すときにMyObj、コピーコンストラクターを呼び出すことを期待していました。の2番目のインスタンスのコピーコンストラクターを呼び出す必要がないのはなぜMyClassですか?