1

我有一个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);


 };

当我尝试将数组分配给verticesCElement 对象的成员时,出现错误:expression must be a modifiable Lvalue

 CElement* a = new CPolygon(mFirstPoint,mSecondPoint);
  a->vertices=vertices;        //here!!

为什么这不起作用?

4

1 回答 1

5

因为a->vertices不是可修改的左值...不能在 C++ 中分配数组,只能分配特定元素或进行复制。

如果您知道大小为11,我会使用std::array(或std::vector,为了灵活性)而不是 C 样式数组。

于 2012-12-17T16:35:59.160 回答