我有這個類,里面有一個列舉“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;}
};
列舉在類中被宣告為私有,這意味著它不能從主類中訪問。現在,我們要為這個類宣告一個物件,并使用獲取 AT_Color 的建構式。
K_DxfDwgColor colorDefiner(K_DxfDwgColor::ByBlock);
每次我以這種方式宣告我的物件時,都會收到一條錯誤訊息,指出列舉不可訪問。有人可以告訴我如何正確宣告它嗎?
提前致謝
uj5u.com熱心網友回復:
將列舉移到類外,需要從主叫方知道:
enum AT_Color { Normal = 0, ByLayer = 1, ByBlock = 2 };
class K_DxfDwgColor {
public:
K_DxfDwgColor(AT_Color paColor):m_atColor(paColor){};
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/432207.html
上一篇:如何進入ac#模型中的嵌套串列?
