如果創建可讀性結構內的枚舉,這裏所說的 How to avoid name conflicts for two enum values with the same name in C++?C++使用結構枚舉作爲參數不會編譯
我打算增加更多的枚舉,在這裏和在其他情況下,我只是想知道爲什麼結構不編譯。來自C#和Java我希望有一個更簡單的語法 -
並且有結構作爲類的構造函數的參數,我不能從控制檯應用程序的main.cpp調用它。 它給我的錯誤**呼叫toBarEnc :: BarEnc(BarEnc ::方案:: eScheme)」沒有匹配的功能**的main.cpp
這裏是類
class BarEnc {
public:
struct Scheme
{
enum eScheme
{ ADJ1M2, ADJ3M6
};
};
BarEnc();
BarEnc(BarEnc::Scheme scheme);
}
主
。 CPP 我把它叫做
BarEnc barEnc = BarEnc(BarEnc::Scheme::ADJ3M6);
但是,如果我在構造函數參數更改爲int的代碼編譯
BarEnc(int scheme);
如果我將其更改爲枚舉代碼編譯
BarEnc(BarEnc::Scheme::eScheme scheme);
但是,當它是一個結構,它不編譯。我對C++比較陌生,使用GCC 4.6在Linux上編譯,使用99標準。
是否有我無法使用結構作爲參數的原因?
你想要你的構造函數做什麼? – juanchopanza
它需要保持類中的枚舉值,我使用的結構,因爲它被推薦,因爲它提高了可讀性,我希望一致性 – pt123
但是你的類沒有枚舉實例。沒有什麼可以設置的。 – juanchopanza