C++ “函数样式转换”:作为“.”运算符的右侧非法

C++ “函数样式转换”:作为“.”运算符的右侧非法,c++,enums,C++,Enums,我已在drawview类中声明了一个枚举: 在我的主类中,我有一个名为m_view的drawview实例 我尝试通过执行以下操作来设置枚举: m_view.current_shape = line; 我也试过了 m_view.current_shape = m_view.line; 如何正确设置此枚举?枚举是一种类型。您的枚举类型称为当前形状。现在需要一个这种类型的对象。但是,可能应该更改名称,以便对象为当前形状,枚举为形状: 现在可以按如下方式设置当前的_形状: 枚举是一种类型。您的枚举类

我已在drawview类中声明了一个枚举:

在我的主类中,我有一个名为m_view的drawview实例

我尝试通过执行以下操作来设置枚举:

m_view.current_shape = line;
我也试过了

m_view.current_shape = m_view.line;

如何正确设置此枚举?

枚举是一种类型。您的枚举类型称为当前形状。现在需要一个这种类型的对象。但是,可能应该更改名称,以便对象为当前形状,枚举为形状:

现在可以按如下方式设置当前的_形状:


枚举是一种类型。您的枚举类型称为当前形状。现在需要一个这种类型的对象。但是,可能应该更改名称,以便对象为当前形状,枚举为形状:

现在可以按如下方式设置当前的_形状:


给m_view.current_shape一个不同的名称,当前_shape在声明后保留为枚举类型。

给m_view.current_shape一个不同的名称,当前_shape在声明后保留为枚举类型。

您得到的完整错误是什么?您得到的完整错误是什么?
m_view.current_shape = m_view.line;
enum shape { line, rect, elli };
shape current_shape;
m_view.current_shape = drawview::line;