临时对象的优化
来源:8-5 拷贝构造及临时对象的优化
慕沐0178679
2020-04-19
Complex Complex::operator+ (const Complex& c) const
{
//Complex tmp;
//tmp._real = _real + c._real;
//tmp._image = _image + c._image;
//return tmp;
return Complex(_real + c._real, _image + c._image);
}
这段代码中,为什么return tmp时会调用拷贝构造函数,而 return Complex(_real + c._real, _image + c._image)不会呢?
写回答
1回答
-
quickzhao
2020-04-19
前者已经产生一个临时对象了,返回值必须得使用拷贝构造才能得到一个可用的对象,后者编译器可以在构造对象时直接返回,优化成本。
022020-05-05
相似问题