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_1 — char*, p_ganre — char*, w_unw — bool.
Значит, вы передаете в конструктор
Films film(int, char, char, bool);
Есть у вас такой конструктор? Нет. У вас есть
Films(int, char*, char*[g], bool)
Так что компилятор прав. Предавайте конструктору то, что пообещали в объявлении/определении.