这是一个示例程序,用于检查函数内本地类对象的范围。在这里,我正在创建 A 类的对象并为其赋值,并通过引用返回该对象Function()
。我想知道变量的作用域什么时候结束?。既然是堆栈对象(不是指针),它会在函数()结束时被破坏吗?如果是这样,当它的引用值被分配给一个新对象时会发生什么?
#include "stdafx.h"
#include <iostream>
class A
{
public:
int a, b;
A(int aa, int bb)
{
a = aa;
b = bb;
}
A(){}
};
A& Function()
{
A object;
object.a = 10;
object.b = 20;
return object;
}
int _tmain(int argc, _TCHAR* argv[])
{
A aaa = Function();
std::cout<<"\nValue : "<<aaa.a<<" "<<aaa.b;
getchar();
return 0;
}