E0289 Отсутствуют экземпляры конструктора "Films::Films", соответствующие списку аргументов

Пробовал выставлять константы, пробовал убирать первый аргумент и параметр, но ошибка просто переходила на следующий, пробовал создавать переменную внутри функции и вставлять её аргументом, пробовал просто число вставлять.

'''

#include <iostream>
using namespace std;

int number = 0;
const int n = 50, g = 20, m = 100;
int mass[m];

class Films {
  int num = 0;
  char name[n], ganre[g];
  bool w_unw;
public:
  Films(int num_1, char *name_1, char *ganre_1[g], bool w_unw_1) {
  name[n] = *name_1;
      w_unw = w_unw_1;
  };
}  

void insert() {
  char name[n], ganre[g], * name_1, *p_ganre;
  bool w_unw;
  int a = 0;
  cout << "Введите название\n";
  cin >> name;
  name_1 = name;
  cout << "Введите жанр\n";
  cin >> ganre;
  p_ganre = ganre;
  cout << "Фильм просмотрен?(1 - да, 0 - нет)\n";
  cin >> w_unw;
  Films film(number, *name_1, *p_ganre, w_unw);
  if (number < n) { number++; }

}

'''

Место, где показывает ошибку


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

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

Смотрим:

Films film(number, *name_1, *p_ganre, w_unw);

number у вас int, name_1char*, p_ganrechar*, w_unwbool.

Значит, вы передаете в конструктор

Films film(int, char, char, bool);

Есть у вас такой конструктор? Нет. У вас есть

Films(int, char*, char*[g], bool)

Так что компилятор прав. Предавайте конструктору то, что пообещали в объявлении/определении.

→ Ссылка