#include<iostream>
using namespace std;
class Test
{
private:
int x;
public:
Test(int i)
{
cout<<"Conversion constructor called..."<<endl;
x = i;
}
~Test()
{
cout<<"Destructor called..."<<endl;
}
void show()
{
cout<<" x = "<<x<<endl;
}
};
int main()
{
Test t(20);
t.show();
t = 30;
t.show();
return 0;
}
輸出:轉換構造澄清
Conversion constructor called...
x = 20
Conversion constructor called...
Destructor called...
x = 30
Destructor called...
當我在做T = 30,爲什麼它在調用構造函數和析構函數? 請解釋。提前多謝。
@paddy
在這種情況下,轉讓可以直接使用此,相當於:
你可以通過提供一個賦值操作符避免這種默認的賦值運算符是禁止複製來自另一個'Test'的賦值,而不是來自任意類型。 – 2015-02-11 17:11:55