1. 程式人生 > >C++ 一個demo看懂—拷貝建構函式與賦值運算子過載區別

C++ 一個demo看懂—拷貝建構函式與賦值運算子過載區別

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;
	}

相關推薦

no