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

whf*_*whf 3 c++ compiler-errors const static-members

我正在尝试创建一个颜色类.就像是:

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

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

image.setPixel(100, 100, Color::Red);
Run Code Online (Sandbox Code Playgroud)

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

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

const Color::Color Red = Color(255, 0, 0, 255);
Run Code Online (Sandbox Code Playgroud)

但我得到了一个

错误说Color :: Color是一种无效的类型

我究竟做错了什么?

Ben*_*ley 10

红色是会员,应该是:

const Color Color::Red = Color(255, 0, 0, 255);
Run Code Online (Sandbox Code Playgroud)

  • 我更喜欢没有等号:`const Color Color :: Red(255,0,0,255);` (2认同)