如何解决对象删除后,对成员变量的引用会损坏吗?
在删除对象后,可以像本例中所示使用ref
还是不安全?
struct Object
{
int value;
};
void function()
{
Object* object = new Object();
int& ref = object->value;
delete object;
ref = 50;
}
解决方法
这是不安全的。
任何使用指针或引用被破坏对象的成员都是未定义的行为。
,不,您不能。 Object::value
是Object
的子对象。销毁*object
也将销毁object->value
。在delete object;
之后,引用不再引用有效对象,并且ref
值的任何使用都是未定义的行为。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。