我有一个类,其静态常量成员与该类具有相同的类型。我收到错误消息,表明课程尚未完成。
#include<iostream>
class Color
{
public:
Color(unsigned char _red, unsigned char _green, unsigned char _blue)
: red(_red), green(_green), blue(_blue)
{
}
Color(){}
unsigned char red, green, blue;
static const inline Color White{255, 255, 255};
};
int main()
{
std::cout << Color::White.red;
}
我可以将它们设置为非常量,但这样很容易出错,因为这样就可以更改。如果我将它们设置为常量,那么它们必须在声明所在的位置定义。
我想对于这种情况需要静态构造函数。
在类外定义变量:
class Color
{
// ...
static const Color White;
};
const Color Color::White{255, 255, 255};