基本上就是标题所说的。我有一个带有此构造函数的自定义命名类 Color:
Color(component_t r, component_t g, component_t b) : r(r), g(g), b(b) {
}
我正在处理的类“Image”已经有一个 protected 值:Color* buffer 我试图用来自另一个 float* 数组的数据用 Color 类的实例填充这个缓冲区。这是我的代码:
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]);
}
然而,在 for 循环内的 'buffer[k]=new Color(r[k],g[k],b[k])' 行中,它给出了 'no operator'="匹配这些操作数,操作数类型有:Color=Color*'
我做错了什么?
最佳答案
你已经在这里创建了所有的Color
:
Color* buffer = new Color[width*height];
只需更改buffer
成员的值即可
buffer[k] = Color(r[k], g[k], b[k]);
无需分配新的Color
,您之前已经这样做了。
关于c++ - 在 C++ 中创建自定义类的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47513680/