【发布时间】:2011-12-29 16:16:29
【问题描述】:
看看这段代码:
Foo &Bar::Copy()
{
return Bar();
}
类Bar继承自Foo,Foo是一个抽象类。但是当我打电话给Bar() 并返回它时,这样做安全吗?或者我会返回将在 Copy() 函数结束时释放的局部变量的地址?
非常感谢您的建议!
【问题讨论】:
-
@GWW - 不,不是。我不知道返回构造函数是否算作返回本地分配。这可能对其他对同一件事感到困惑的人有益。
-
实际上这甚至不应该编译,因为右值绑定到非常量引用。
标签: c++ oop constructor reference scope