2011-11-21 39 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);' –

相关问题