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性
//特例:隐式生成临时对象具有常性