У меня есть два класса внутри файла заголовка, второй класс зависит от 1-го. Включая этот файл заголовка в .cpp-файл, где я реализую прототип конструктора для класса Flight. Компиляция дает мне следующую ошибку:C++ Массив объекта (создается) внутри другого класса
Error: no matching function for call to ‘Passenger::Passenger()’
Flight::Flight(int maxPassenger, int flightNo) {
Вот два класса в моем файле заголовка
/*
*Passenger Class:
*/
class Passenger
{
public:
int flightNo;
string lastName;
string firstName;
int seatNo;
public:
Passenger(int flightNo, string lastName,string firstName, int seatNo);
};
/*
*Flight Class:
*/
class Flight {
public:
int maxPassenger;
int currentPos;
int flightNo;
Passenger list[20];
public:
Flight (int maxPassenger, int flightNo);
}
А вот реализацию конструктора:
Flight::Flight(int maxPassenger, int flightNo) {
maxPassenger = maxPassenger;
// list = new Passenger [maxPassenger];
flightNo = flightNo;
}
Я понимаю, что существует конфликт в конструкторах. Но я не могу точно определить, что случилось. Любая помощь будет очень оценена.
Будет ли добавлен конструктор, который не имеет значения, влияет на список? Я пытаюсь составить список, который принимает объект Пассажира, т. Е. Он также будет содержать имя пассажира, seatNo и FlightNo. так что я могу cout << list [2] .lastName Есть ли какие-то дополнительные вещи, которые мне нужно сделать? – Mish
Нет, это не повлияет на список, но у объектов Пассажира не будет никаких действительных значений для seatNo, FlightNo и т. Д., Вам решать, как правильно их инициализировать позже. – bluefalcon