系统会进行优化的情况:
(1)拷贝构造存在连续赋值
(2)多个临时对象连续赋值
(3)返回值进行拷贝构造时系统都会进行自动优化
优化问题例题:
Test1中调用了2_次AA的拷贝构造函数,1_次AA的赋值运算符函数的重载。
Test2中调用了2_次AA的拷贝构造函数,0_次AA的赋值运算符函数的重载。
Test3中调用了3_次AA的拷贝构造函数,0_次AA的赋值运算符函数的重载。
class AA
{};
AA f (AA a)
{
return a ;
}
void Test1 ()
{
AA a1 ;
a1 = f(a1);
}
void Test2 ()
{
AA a1 ;
AA a2 = f(a1);
}
void Test3 ()
{
AA a1 ;
AA a2 = f(f(a1));
}