2011-11-21 41 views
3

我正在嘗試爲顏色創建一個類。喜歡的東西:如何在自己內部創建一個類的靜態常量實例(即一個Color類)?

class Color 
{ 
public: 
    float r, g, b, a; 
    Color(float r_, float g_, float b_, float a_); 
... 
} 

爲方便起見,我想包括類的實例作爲類的一部分,這樣我不需要這樣指定常用顏色的RGBA值:

image.setPixel(100, 100, Color::Red); 

但是,我不知道這是什麼正確的語法。我一直在谷歌搜索一段時間,我一直無法找到這個方法的術語:(我以前見過它在其他庫中完成,所以我認爲這是可能的,我認爲它有聲明爲靜態常量,但我不知道這一點:

class Color 
{ 
public: 
    static const Color Red; 
... 
} 

const Color::Color Red = Color(255, 0, 0, 255); 

但我得到一個

錯誤說顏色::顏色的類型無效

我做錯了什麼?

回答

10

紅色是會員,應該是:

const Color Color::Red = Color(255, 0, 0, 255); 
+0

謝謝!我不敢相信我花了這麼多時間來處理這樣一個簡單的錯誤D :.我要去吃餅乾,讓自己感覺更好。 – whf

+0

另外這行應該在.cpp文件中,而不是頭文件中。 –

+2

我不喜歡等號:'const Color Color :: Red(255,0,0,255);' –

相關問題