C++ 赋值错误的左操作数需要左值
赋值的左操作数需要左值 当我试图编译这段代码时,出现了上述错误:C++ 赋值错误的左操作数需要左值,c++,C++,赋值的左操作数需要左值 当我试图编译这段代码时,出现了上述错误: 项目符号的声明: 我哪里出错了?如果您想在预先分配的内存中构建new BrokenPart,其中存储I指向的对象,您可以使用placement new操作符:new(&(*I))BrokenPart() 检查这个问题:你不能那样做。项目符号包含部分s,而不是部分*。您也不能修改列表中存储的部分对象的内存地址,您可以修改它们的内容 您可以使用指针列表: std::list<Part*> bullets; /* ... *
项目符号的声明
:
我哪里出错了?如果您想在预先分配的内存中构建
new BrokenPart
,其中存储I
指向的对象,您可以使用placement new操作符:new(&(*I))BrokenPart()代码>
检查这个问题:你不能那样做。项目符号包含部分
s,而不是部分*
。您也不能修改列表中存储的部分
对象的内存地址,您可以修改它们的内容
您可以使用指针列表:
std::list<Part*> bullets;
/* ... */
*i = new BrokenPart(**i);
std::列出项目符号;
/* ... */
*i=新的BrokenPart(**i);
注意迭代器上的两个derreference操作符,一次用于获取部分
指针,另一次用于derreference它
作为建议,我想告诉你改变你的设计。看起来可以使用重新设计部分
类,您应该看看它。为了解释错误消息:编译器抱怨&(*i)=…
没有意义:&(*i)
是地址,不能更改
有关修复方法,请参见丰塔尼尼的回答