2011-04-05 184 views
1

我在我的類中聲明瞭枚舉的問題。 我曾試圖在私人,公共,外部,主要,沒有任何作品上宣佈它。 我需要從外部調用類中的函數,並使用函數 中的枚舉,這裏是我的代碼。類C++中的枚舉聲明,在類中枚舉的問題

class Algoritem { 
    public: 
    enum Optimization { W , A , D }; 
    enum FenceType { OF , CC }; 
    enum Eventopa { BR , OR }; 
    algorithem* OptimalPatrol(double N, int K, double VS, double T, Optimization F,FenceType FT, Eventopa E, double Imax,double P); 
}; 

當我需要調用OptimalPatrol()時,需要輸入3個枚舉。我不能在主體中重新聲明它們,那麼如何在主體中輸入變量的枚舉?

+0

幫助非母語者:正確的拼寫是_algorithm_ – stijn 2011-04-05 11:18:24

回答

8

您必須指定枚舉定義在哪個類中。調用這樣的函數:

OptimalPatrol(N, K, VS, T, Algoritem::W, Algoritem::OF, Algoritem::BR, Imax, P); 

這樣,你的編譯器知道在哪個類中尋找枚舉聲明。

+1

(一種常用的替代方法是在'class'之前聲明'enum',在同一個'namespace'中,但哪一個更好取決於簡化的簡明用法是否會重新引入與該名稱空間中的其他符號發生衝突的風險以及類名稱前綴的文檔值)。 – 2011-04-05 10:30:42