我不知道如何在c ++中调用它,但我想要做的就是创建 表示Color的常规类,该类的几个成员与类的类型相同:(不工作)
class Color
{
public:
Color();
Color(const Color& color);
Color(float r, float g, float b, float a);
~Color();
static const Color CLEAR;
static const Color WHITE;
static const Color BLACK;
static const Color RED;
private:
void set(Color color);
/
float r, g, b, a;
};
/// c ++文件: #include“Color.h”
Color CLEAR(0, 0, 0, 0);
Color WHITE(1, 1, 1, 1);
Color BLACK(0, 0, 0, 1);
Color RED(1, 0, 0, 1);
Color::Color()
{
}
Color::Color(float r, float g, float b, float a)
{
r = r;
g = g;
b = b;
a = a;
}
Color::Color(Color& color)
{
set(color);
}
void Color::set(Color color)
{
r = color.r;
g = color.g;
b = color.b;
a = color.a;
}
Color::~Color()
{
}
所以我可以打电话给代码:
Color c = Color::WHITE; // or Color.WHITE
答案 0 :(得分:1)
由于你的常量位于Color
内,你必须像这样定义它们:
const Color Color::CLEAR(0, 0, 0, 0);
// ^^^^^^^
// Qualification of static class member.
//
// Instead of:
Color CLEAR(0, 0, 0, 0);
答案 1 :(得分:0)
您需要在其定义中限定static
成员:
Color Color::WHITE(1,1,1,1);
// ...
否则,你宣布不相关的变量。