1、用已经创建好的对象来初始化新的对象
void test01()
{
Person p1(18);
Person p2 = Person(p1);
cout << "p2的年龄" << p2.m_Age<< endl;
}
2、用值传递的方式,给函数参数传值
void doWork(Person p)
{
}
void test02()
{
Person p1(100);
doWork(p1);
}
3、以值的方式 返回局部对象
Person doWork2()
{
Person p;
return p;
}
不能返回局部变量的引用。如上面的例子,
p是局部变量,那么它会在函数返回后被销毁,
此时对p的引用就会成为“无所指”的引用,程序会进入未知状态。
void test03()
{
Person p = doWork2();
}
编译器优化代码后 release版本代码类似于以下:
void doWork2( Person &p ){};
Person p;
doWork2(p);