如何连接现有 class
How to interface an existing class
我有这个 Class,里面有一个枚举“AT_Color”:
class K_DxfDwgColor {
enum AT_Color { Normal = 0, ByLayer = 1, ByBlock = 2 };
COLORREF m_crColor = 0;
AT_Color m_atColor = AT_Color::Normal;
public:
K_DxfDwgColor(COLORREF pkColorref) :m_crColor(pkColorref) {};
K_DxfDwgColor(K_DxfDwgColor::AT_Color paColor):m_atColor(paColor){};
OdCmColor colorClone;
OdCmColor SetLayerColor(bool pbDefaultForegroundColor, bool pbByLayer, bool pbIsSolidFill);
COLORREF GetColor(){ return m_crColor;}
AT_Color GetType() { return m_atColor;}
};
枚举在 class 中声明为私有,这意味着无法从主程序访问它。
现在,我们要为此 class 声明一个对象并使用获取 AT_Color.
的构造函数
K_DxfDwgColor colorDefiner(K_DxfDwgColor::ByBlock);
每次我以这种方式声明我的对象时,我都会收到一条错误消息,指出无法访问枚举。有人可以告诉我如何正确申报吗?
提前致谢
将枚举移到class之外,需要调用方知道:
enum AT_Color { Normal = 0, ByLayer = 1, ByBlock = 2 };
class K_DxfDwgColor {
public:
K_DxfDwgColor(AT_Color paColor):m_atColor(paColor){};
}
我有这个 Class,里面有一个枚举“AT_Color”:
class K_DxfDwgColor {
enum AT_Color { Normal = 0, ByLayer = 1, ByBlock = 2 };
COLORREF m_crColor = 0;
AT_Color m_atColor = AT_Color::Normal;
public:
K_DxfDwgColor(COLORREF pkColorref) :m_crColor(pkColorref) {};
K_DxfDwgColor(K_DxfDwgColor::AT_Color paColor):m_atColor(paColor){};
OdCmColor colorClone;
OdCmColor SetLayerColor(bool pbDefaultForegroundColor, bool pbByLayer, bool pbIsSolidFill);
COLORREF GetColor(){ return m_crColor;}
AT_Color GetType() { return m_atColor;}
};
枚举在 class 中声明为私有,这意味着无法从主程序访问它。 现在,我们要为此 class 声明一个对象并使用获取 AT_Color.
的构造函数K_DxfDwgColor colorDefiner(K_DxfDwgColor::ByBlock);
每次我以这种方式声明我的对象时,我都会收到一条错误消息,指出无法访问枚举。有人可以告诉我如何正确申报吗?
提前致谢
将枚举移到class之外,需要调用方知道:
enum AT_Color { Normal = 0, ByLayer = 1, ByBlock = 2 };
class K_DxfDwgColor {
public:
K_DxfDwgColor(AT_Color paColor):m_atColor(paColor){};
}