J'ai deux classes à l'intérieur d'un fichier d'en-tête, la 2ème classe dépendant du 1er. Inclus ce fichier d'en-tête dans un fichier .cpp où j'implémente le prototype du constructeur pour la classe Flight. Compiling me donne l'erreur suivante:C++ Tableau d'un objet (créé) dans une autre classe
Error: no matching function for call to ‘Passenger::Passenger()’
Flight::Flight(int maxPassenger, int flightNo) {
est ici les deux classes dans mon fichier d'en-tête
/*
*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);
}
Et Voici l'implémentation du constructeur:
Flight::Flight(int maxPassenger, int flightNo) {
maxPassenger = maxPassenger;
// list = new Passenger [maxPassenger];
flightNo = flightNo;
}
Je peux comprendre qu'il ya un conflit dans les constructeurs. Mais je ne peux pas comprendre exactement ce qui ne va pas. Toute aide serait très appréciée.
L'ajout d'un constructeur qui ne nomme aucune valeur affecte-t-il la liste? J'essaie de faire une liste qui prend en compte l'objet passager, c'est-à-dire qu'il contiendra également le nom du passager, seatNo et FlightNo. pour que je puisse cout << liste [2] .lastName Y at-il d'autres choses que je dois faire? – Mish
Non, cela n'affectera pas la liste mais les objets Passenger n'auront aucune valeur valide pour seatNo, FlightNo etc, c'est à vous de les initialiser correctement plus tard. – bluefalcon