构造,拷贝构造的N种调用情况
一:C++对传参和传返回值时构造的优化处理。
C++在构造时,对传参和传返回值时,有时编译器会做一些优化:
1:传参时的优化
未优化时情况:
优化时情况:
二:返回时编译器进行优化:
未优化时:
优化时:
3:接受返回值时优化:
未优化时:
二合一部分优化:
三合一终极优化:
一道例题剖析:
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));
}
Test ·1
Test 2
Test 3