您有以下内容:
Person& getPersonByName(string name);
在什么情况下,您需要担心 getPersonByName 的返回人员会在方法结束后立即被破坏,因此调用方方法将处理被破坏的数据?
谢谢
您有以下内容:
Person& getPersonByName(string name);
在什么情况下,您需要担心 getPersonByName 的返回人员会在方法结束后立即被破坏,因此调用方方法将处理被破坏的数据?
谢谢
你应该。
例如dangling reference
:
Person &getPerson()
{
Person p;
return p;
} //p is destroyed here
但这没关系:
Person &getPerson()
{
static Person p;
return p;
}
您还可以将 a 返回reference
到 an 的某个内部变量,并且可以在销毁object
之前使用它:object
class Foo
{
public:
int & getA() {return a;}
private:
int a;
};
如果Person
函数返回时不会被销毁。例子包括