c++ - 在 C++ 中创建自定义类的多个实例

标签 c++ arrays class ppm

基本上就是标题所说的。我有一个带有此构造函数的自定义命名类 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/

相关文章:

c++ - Purify 在使用 std::list::remove() 时揭示了潜在的空闲内存读取

c++ - 当我尝试转换 Int64 时,poco-library 出现错误的转换异常

javascript - 不使用 lodash 差异删除重复项

javascript - 如何按日期对对象数组进行排序?

c# - 用于删除所有字符串重复并分配给数组的正则表达式

c++ - 如何在 opencl 中使用 cv::mat

c++ - STL 列表在 Visual Studio 2013 中编译的代码在 Visual Studio 2019 中出错。想知道原因

c++ - 为什么我的类(class)规模大于其成员的总和?

python - 如何继承类的方法并让它们访问python中的自身成员变量

c++ - 关于我项目中的抽象类