C++用臨時對象構造新對象
//用臨時對象構造同類型的新對象,該臨時對象不產生;
// 直接用生成臨時對象的方法構造新對象,這是編譯器對代碼的優化,效率更高
#include<iostream>
using namespace std;
class MyClass
{
public:MyClass();MyClass(int p_val);~MyClass();private:int m_val;};MyClass::MyClass()
{m_val = 0;cout << "構造函數MyClass()" << endl;
}
MyClass::MyClass(int p_val)
{m_val = p_val;cout << "構造函數MyClass(int p_val)" << endl;
}MyClass::~MyClass()
{cout << "析構函數" << endl;
}
int main()
{MyClass a;MyClass a1(100);//用臨時對象構造同類型的新對象,該臨時對象不產生;// 直接用生成臨時對象的方法構造新對象cout << "========================" << endl;MyClass a2 = MyClass(20);cout << "=========================" << endl;return 0;
}//
//內置類型產生的臨時量具有const性,自定義類型產生的臨時量不具有const性
//特例:隱式生成臨時對象具有常性