C++对传参合传返回值时构造的优化处理
1.C++对传参时要生成一个临时变量,调用一次构造函数;
2.再调用一次拷贝构造函数将临时变量复制给实参,也就是传参过程至少调用一次构造函数和一次拷贝构造函数;
3.对于传引用时,编译器会自动优化,不需生成临时变量,因为形参出了作用域还存在,所以不需要调用拷贝构造函数;
4.如果还有赋值运算,编译器将拷贝构造和赋值运算合并为一步。
再完成下面的题目:
Test1中调用了 2 次AA的拷贝构造函数, 1 次AA的赋值运算符函数的重载。
Test2中调用了 2 次AA的拷贝构造函数, 0 次AA的赋值运算符函数的重载。
Test3中调用了 3 次AA的拷贝构造函数, 0 次AA的赋值运算符函数的重载。
class AA
{};
AA f (AA a)
{
return a ;
}