C++ 一個demo看懂—拷貝建構函式與賦值運算子過載區別
阿新 • • 發佈:2019-01-17
class MyClass { public: MyClass(int i = 0) { cout << i; } MyClass(const MyClass &x) { cout << 2; } MyClass &operator=(const MyClass &x) { cout << 3; return *this; } ~MyClass() { cout << 4; } }; int DiffOfCopyAndEqualTest() { MyClass obj1(1), obj2(2); MyClass obj3 = obj1;//obj3還不存在,所以呼叫拷貝建構函式輸出2, // 如果obj3存在,obj3=obj,則呼叫複製運算子過載函式,輸出3 obj3 = obj2; return 0; }