我有一个名为 Color 的类,其中包含一些静态 Color 对象。我想要这些静态 Color 对象的静态向量,但我不知道如何初始化向量,因为我使用的 C++ 版本不支持列表初始化。有人告诉我(让我懊恼)我必须使用这个旧版本的 C++。
这是我的 Color.h 文件:
#ifndef COLOR_H
#define COLOR_H
#include <vector>
class Color {
public:
Color( float red, float green, float blue, float alpha = 1.0f );
float r, g, b, a;
static Color red;
static Color yellow;
static Color blue;
static std::vector<Color> colors;
};
#endif /* COLOR_H */
在 Color.cpp 中:
#include "Color.h"
Color::Color( float red, float green, float blue, float alpha ) {
r = red;
g = green;
b = blue;
a = alpha;
}
Color Color::red(0.85, 0.0, 0.0);
Color Color::yellow(0.93, 0.93, 0.0);
Color Color::blue(0.0, 0.0, 0.93);
std::array<Colors> arr = {Color::red, Color::blue, Color::yellow};
但是,最后一行不起作用,因为不支持列表初始化。什么是替代方案?如何添加red
,yellow
和blue
to colors
?