Как в С++ заполнить двухмерный массив объектов через цикл?

введите сюда описание изображения

В строке 17 он ругается на отсутствие конструктора по умолчанию. В строке 21 ругается на некорректную инициализацию object[i][j]= A(32,56); Вопрос как правильно через цикл заполнить двухмерный массив объектов, чтобы вызывался конструктор с параметрами?


Ответы (2 шт):

Автор решения: Harry

Напишите в конструкторе

A(int a = 0, int b = 0):x(a)....

и не мучайтесь (просто создаем конструктор по умолчанию с параметрами 0,0).

Все прочие автоматически генерируемые компилятором конструкторы и операторы присвоения вполне пригодны для такого простого типа.

→ Ссылка
Автор решения: zurn

Можно, например, сделать с помощью вектора.

#include <iostream>
#include <vector>

class A
{
  int x;
  int y;
public:
  A(int a, int b): x(a), y(b) {}
  void get_value() {std::cout << x << ' ' << y; }

};

int main()
{
  std::vector<std::vector<A>> object;
  for (int i = 0; i < 5; ++i)
    {
      for (int j = 0; j < 5; ++j)
    {
      object[i].push_back(A(i, j));
    }

  }
  return 0;
}
→ Ссылка