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
をに追加するにはどうすればよいcolors
ですか?