我有一个CPolygon
类,它是从CElement
类派生的。 [我在这里利用多态]。
class CElement : public CObject
{
public:
virtual ~CElement();
virtual void Draw(CDC* pDC){};
CPoint vertices[11];
protected:
CElement();
};
class CPolygon : public CElement
{
public:
CPolygon(CPoint mFirstPoint,CPoint mSecondPoint);
~CPolygon(void);
virtual void Draw(CDC* pDC);
protected:
CPoint mStartPoint;
CPoint mEndPoint;
CPolygon(void);
};
当我尝试将数组分配给CElement对象的成员
vertices
时,出现错误:expression must be a modifiable Lvalue
CElement* a = new CPolygon(mFirstPoint,mSecondPoint);
a->vertices=vertices; //here!!
为什么不起作用?
最佳答案
由于a->vertices
不是可修改的左值,因此您无法在C++中分配数组,因此只能分配特定元素或进行复制。
如果您知道大小为11
,那么我将使用std::array
(或std::vector
,出于灵活性)而不是C样式的数组。
关于c++ - 为什么不能为基类的成员分配值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13918099/