如何连接现有 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){};
}