【发布时间】:2013-08-23 00:16:50
【问题描述】:
我遇到了一个奇怪的问题。当我尝试编写一个返回指向子类的指针的函数时,我将其交换为该子类的不同实例,我得到“错误 C2106:'=':左操作数必须是左值”错误。
问题出在one->getMe() = two; 行:
class subClass{};
class someClass{
public:
subClass * pointer;
someClass(){
pointer = new subClass;
}
subClass * getMe(){
return pointer;
}
};
int main(){
someClass * one = new someClass;
subClass * two = new subClass;
one->getMe() = two;
}
我对 c++ 有点陌生,所以问题可能非常简单。非常感谢任何帮助。
【问题讨论】:
-
你要修改什么-
pointer的值还是pointer指向的对象的值? -
名称
getMe()表明它可以获取一个值,而不是设置该值 -
您正在返回一个右值。使用 set 方法设置新指针。
-
指针指向的对象,与其他元素交换。
-
您使用函数而不是简单地使用可公开访问的成员变量是否有原因?即
one->pointer = two
标签: c++