我很困惑,我可以在哪裏定義枚舉以及我可以在哪裏使用它。我有3個文件,main.cpp,function.cpp和function.h(名稱已被簡化)。在function.h我在頭文件,類和主要枚舉
class Function{
public:
enum Letters{A, B, C};
//more stuff not related
private:
//stuff
}
而且function.h在main.cpp中和function.cpp在main.cpp中執行#included
不過,我想有一個變量:信信;所以我可以從用戶那裏得到一個輸入,將該輸入設置爲鍵入ie letter = A,然後將其用於構造函數構造構造函數(...,letter,...),因爲function.cpp中的構造函數需要一個「Letters 「在爭論中。
那麼有什麼辦法可以訪問main.cpp中的「Letters」類型嗎?如果不是,我正在考慮重寫構造函數,以便它接受「string letterIn」參數,然後將該字符串更改爲Type即if(letterIn ==「A」)Type type = A;
(我推廣了很多變量名的位置,因此它可以適用於其他人的情況下,我可以做的更多細節我自己的項目,如果它會幫助)由於要使用枚舉在
在您的真實代碼中'Letters'也是私有的嗎? – juanchopanza 2014-09-24 20:49:53
如果你聲明它是公開的,你可以在main中使用它作爲'Function :: A','Function :: B'和'Function :: C'。這是在C++ 11之前給枚舉一個範圍的主要方法。 – Medinoc 2014-09-24 20:52:55
對不起,我在function.h示例中刪除了太多內容。我現在更新了它。我的枚舉被公開。 @Medinoc你的意思是我可以做Function :: Letters letter;?我沒有完全遵循,對不起,我從來沒有做過枚舉。編輯:我剛剛看到你在下面的問題的意見之一回答了這個問題。謝謝! – 2014-09-24 21:00:26