Release优化

debug和release调试结果不同是因为release下会将代码再次优化

void test02()
{
    Person p;
    p.age = 10;

    doWork(p); 
}

Person doWork2()
{
    Person p1;
    return p1;              //复制一个新的数据返回
}
void test03()
{
    Person p = doWork2();   
}

/* Person p; 不调用默认构造 
   doWork2(p);

   void doWork2(Person& p)
   {
    Person p1;      //调用默认构造
   }
*/

结果参照构造函数和析构函数

原文地址:https://www.cnblogs.com/yifengs/p/15165274.html