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

本文讨论了C++中如何使用临时对象高效地构造新对象,强调了内置类型临时量的const性和自定义类型的不同。编译器会对直接生成临时对象的方法进行优化,提高代码执行效率。
2000

被折叠的 条评论
为什么被折叠?



