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

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章