小编elF*_*nzo的帖子

枚举和函数

我的CDrawView课堂上有这个枚举声明:

enum shape{line, rect, elli};
Run Code Online (Sandbox Code Playgroud)

在我的另一个名为Shapemaker的类中,我有一个函数应该从CDrawView该类中获取枚举并对其进行评估

  Shape* Shapemaker::shapeCreate(CDrawView::shape)
 {
  if(CDrawView::shape.line == 0)
    return new Line();

  else if(CDrawView::shape.rect == 1)
    return new Rect();

  else if (CDrawView::shape.ellip == 2)
    return new Ellip();
 }
Run Code Online (Sandbox Code Playgroud)

我通过执行Shapemaker::shapeCreate(current_shape)where current_shape只是该实例的实例来调用该函数enum shape

  shape current_shape;
Run Code Online (Sandbox Code Playgroud)

这给了我编译错误:

error C2653: 'CDrawView' : is not a class or namespace name
Shapemaker.h(7): 
Run Code Online (Sandbox Code Playgroud)

我不确定这是否是使用枚举和函数甚至比较枚举的正确方法。

error C2061: syntax error : identifier 'shape'
'Shapemaker::shapeCreate' : function does not take 1 arguments
Run Code Online (Sandbox Code Playgroud)

CDrawView.h

class CDrawView : public CScrollWindowImpl<CDrawView> …
Run Code Online (Sandbox Code Playgroud)

c++ enums function

0
推荐指数
1
解决办法
732
查看次数

标签 统计

c++ ×1

enums ×1

function ×1