我遇到了一個奇怪的問題。當我嘗試編寫一個返回指向子類的指針的函數時,我爲該子類的另一個實例交換了一個「錯誤C2106:'=':左操作數必須是l值」的錯誤。C++返回指針值不可更改
裏邊反問題是在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++這樣的問題可能是可怕的簡單。任何幫助深表感謝。
你想修改什麼 - 指針的值或指針指向的對象的值? –
名稱'getMe()'表明它可以_get_值,而不是_set_值 – sehe
您正在返回一個右值。使用set方法設置新的指針。 – Banex