如何在自身内部创建一个(静态const?)实例(即一个Color类)?

时间:2011-11-21 05:30:17

标签: c++ compiler-errors const static-members

我正在尝试为颜色创建一个类。类似的东西:

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

为方便起见,我想将类的实例作为类的一部分包含在内,这样我就不需要为常见颜色指定rgba值了:

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

但是,我不知道这是什么正确的语法。我已经在Google上搜索了一段时间,但我找不到这个方法的术语:(。之前我在其他图书馆看过它,所以我认为这是可能的。我认为它有被声明为静态常量,但我不确定:

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

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

但我得到了

  

错误说Color :: Color是无效类型

我做错了什么?

1 个答案:

答案 0 :(得分:10)

红色是会员,应该是:

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