Как правильно инициализировать figure[4][4] через класса потомка Box? Если я создаю переменную типа Figure и передаю ей массив, все нормально выводится, объект класса заполняется. НО если я создаю переменную типа Box, которая уже вызывает конструктор Figure, выводится мусор.
Подскажите в чем ошибка?
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Figure {
private:
void fill_figure(bool new_figure[4][4]) {
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
this->figure[i][j] = new_figure[i][j];
}
}
}
protected:
bool figure[4][4];
string name;
public:
Figure(bool figure[4][4], string name) : name(name) {
this->fill_figure(figure);
};
void show_figure() const {
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
cout << this->figure[i][j] << " ";
}
cout << "\n";
}
}
};
class Box : public Figure {
private:
bool box[4][4] = {
{0, 0, 0, 0},
{0, 1, 1, 0},
{0, 1, 1, 0},
{0, 0, 0, 0},
};
public:
Box() : Figure(this->box, "Box") {};
};
int main() {
setlocale(LC_ALL, "ru");
bool box[4][4] = {
{0, 0, 0, 0},
{0, 1, 1, 0},
{0, 1, 1, 0},
{0, 0, 0, 0},
};
Figure f{box, "Box"};
f.show_figure();
Box b;
b.show_figure();
return 0;
}