c – 改变一个对象的’this’指针来指向不同的对象
发布时间:2020-12-16 07:52:12 所属栏目:百科 来源:网络整理
导读:class C{ //methods and properties}void C::some_method(C* b){ delete this; this = b; } 这在编译时给我以下错误: error: lvalue required as left operand of assignment 我的意图: 说有C类的对象a和b,C类的内容可以是非常巨大的,而且通过字段的复制可
class C{ //methods and properties } void C::some_method(C* b){ delete this; this = b; } 这在编译时给我以下错误: error: lvalue required as left operand of assignment 我的意图: 默认的复制构造函数会执行预期的任务吗? 我发现一些叫做“移动构造函数” 也许,这可能会得到我想要的效果. 解决方法
这个指针是一个隐含的指针,指向您正在工作的上下文对象,您无法重新分配该对象.
根据Stroustrup的圣经(C编程语言,第3版),这表示为 C * const this 这意味着你有一个指向你的类C的指针,所以编译器会抱怨,如果你尝试改变它. 编辑: 当我被修正时,上述表达式并没有完全正确地描述这一点,因为这实际上是一个右值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |