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