【发布时间】:2022-01-17 22:07:16
【问题描述】:
我正在尝试初始化一个类的数组,但如果我指定数组的每个对象,我只能这样做,例如:
class Pixel{
private:
int color;
public:
Pixel(int color):color(color){}
};
class Screen{
private:
Pixel screen[1920][1080];
public:
Screen(){
//code//
//i was trying to use for, to determinate each pixel color from a certain area
//but i cannot, bc i would have to do something like this:
screen[1920][1080] = {{Pixel(1),Pixel(1),Pixel(1),Pixel(1)...1080 times},{Pixel(2)
,Pixel(2), Pixel(2)...1080 times}...1918 times}
//as you can see, is nearly impossible to do this in this way.
}
};
有没有用 fors 或类似的东西初始化这个数组的原生方法?
(该代码只是一个具有完全相同逻辑的示例,它不是来自我的项目)
【问题讨论】:
-
您可以为您的
Pixel类编写一个默认构造函数。或者更好的是给你的ctor中的参数一个默认值 -
使用
vector而不是数组。 -
另外,您的 2D 阵列的纵横比为 9:16,而您可能真的需要 16:9,例如电视和显示器等。
-
您可以使用
for循环(实际上是两个嵌套)在构造函数中分配初始值
标签: c++ arrays class oop initialization