@Nonobeki

Пустой массив C++, как решить?

Я написал программу для изучения ООП.
Там поле 5 на 5, в начале идет установка всех объектов на поле.
Вопрос: почему массив пуст?

Мой код
#include <iostream>
class Poligon {
private: int G[5][5] = { 0 };
public: Poligon() {

}
        
        void PoligonClear() {
        //..обнулить G
            for (int i = 0; i != 5; i++) {
                for (int d = 0; d != 5; d++) {
                    Poligon::G[i][d] = 0;
                }
            }
        };
      
      

      void PrintPoligon() {
          for (int i = 0; i != 5; i++) {
              printf("%d | ", i + 1);

              for (int d = 0; d != 5; d++) {
                  printf("%d ", G[i][d]);
              }

              printf("\n");
          }
      }

      void Postavit(int i, int j, int x) {
          G[i][j] = x;
          printf("i: %d, j: %d, x: %d\n", i, j, x);
          //PrintPoligon();
      }
      
      void GetInfo() {

          PrintPoligon();
      }
};

class Cat {

public: int Age = 1;
    void Setage(int v) {
    Age = v;
};
      int Getage(void) {
          return Age;
      };
      void Gulat(Poligon X, int i, int j) {
          X.Postavit(i, j, Age);
      }
};

class Dog {

public: int DogAge = 1;
      void Setage(int v) {
          DogAge = v;
      };
      int Getage(void) {
          return DogAge;
      };
      void Gulat(Poligon X, int i, int j) {
          X.Postavit(i, j, DogAge);
      };
};

int main() {
    Poligon W;

    Cat Barsik;
    Barsik.Setage(2);
    Barsik.Gulat(W, 1, 2);

    Dog Tusik;
    Barsik.Setage(3);
    Tusik.Gulat(W, 1, 3);

    W.GetInfo();

    return 0;
}
  • Вопрос задан
  • 205 просмотров
Решения вопроса 1
15432
@15432
Системный программист ^_^
Потому что у вас нет вызовов Setage, и в Gulat() получается Postavit(i, j, 0)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Пустой массив - это массив без элементов. А у вас массив не пустой, а заполненный нулями.
Ну а проблема в том, что не задано начальное значение Age.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы