基本的には、私はこのコンストラクタを持つカスタムという名前のクラスの色を持っている:C++でのカスタムクラスの複数のインスタンスの作成
Color(component_t r, component_t g, component_t b) : r(r), g(g), b(b) {
}
クラス「イメージ」私が働いているあり、すでに保護された値の:色*バッファ 私はのインスタンスと、このバッファを埋めるためにしようとしています別のフロートのデータでカラー・クラス* array.Thisは私のコードである:
Color* buffer = new Color[width*height];
float* r = new float[width*height];
float* g = new float[width*height];
float* b = new float[width*height];
int i = 0;
do {
r[i] = buff[i];
i++;
g[i] = buff[i];
i++;
b[i] = buff[i];
i++;
} while (i < width*height);
for (int k = 0; k < width*height; k++) {
buffer[k] = new Color(r[k], g[k], b[k]);
}
しかしに '[k]をバッファ新しい色(R [K]、G [K]、B [k]を)=' forループの中にある行は、「演算子なし」=「これらのオペランドに一致します。オペランドの型は次のとおりです:Color = Color *」
どうしたんだ?
生ポインタを使用する以外は? ;){可能な場合はスマートポインタを使用します。またはstd :: vectorあなたがやっていることのために!} – UKMonkey
'buffer [k]'は、色のタイプです。なぜypuは全く新しいものを使うのですか? –
'g [i] = buff [i];'? 2つの異なるインデックスが必要だと思いませんか? r [0]、g [1]、b [2]に値を代入します。 –