2017-07-08 29 views
1

比方說,我有一個enum class breed,我想初始化breed類型的變量,我想該變量命名爲「品種」什麼要命名一個變量,你想在其類型後命名?

struct dog{ 
    enum class breed{ 
     shepherd, husky, terrier 
    }; 
    breed breed; // I don't know what to name this. 
}; 

dog::breed是有道理的,但dog.breed也是情理之中。我不知道這些名字是什麼,所以他們不會發生衝突。

+4

回想一下,C++是區分大小寫的。 –

+1

發揮你的想象力,讓它們與衆不同。 –

+0

@IgorTandetnik告訴標準庫。 –

回答

2

一種常見的做法是(我猜)從Java換了是開始一個大寫字母類/枚舉名:

Breed breed 
+0

在大多數編碼風格中,這種方法是不被接受的,因爲錯別字會導致錯誤,並且可讀性會降低。 –

+0

@ThomasMatthews:你的意思是大寫字母還是使用相同的名字?我知道以SO評論的形式很難,但你能否詳細說明一下。我例如不知道如何錯字可能會注入一個錯誤,因爲我可以想到很少的情況下,您可以使用一個類型或變量名稱,而不需要編譯器抱怨,甚至(如sizeof)它沒有什麼區別。雖然'_t' - 後綴技術也很常見(我個人更喜歡它),這些名稱是IIRC爲POSIX名稱保留的。 – MikeMB

+0

@ThomasMatthews:我剛纔在這個問題上讀到了你的評論,我想指出,我提出的方案與匈牙利符號不一樣。我不是在這裏編碼類型名稱,而是認識到名稱適用於類型以及變量,這主要是因爲它具有非常特定的用途(與例如'int','double','std相反::地圖等)。 – MikeMB