2017-02-01 6 views
0

Ich habe zwei Klassen innerhalb einer Header-Datei, die 2. Klasse ist abhängig von der 1. Klasse. Einbeziehen dieser Headerdatei in eine CPP-Datei, in der ich den Konstruktorprototyp für die Flight-Klasse implementiere. Compilieren gibt mir die folgende Fehlermeldung:C++ Array eines Objekts (erstellt) innerhalb einer anderen Klasse

Error: no matching function for call to ‘Passenger::Passenger()’ 
     Flight::Flight(int maxPassenger, int flightNo) { 

hier die beiden Klassen in meine Header-Datei

/* 
*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); 
} 

Und hier ist der Konstruktor Implementierung:

Flight::Flight(int maxPassenger, int flightNo) { 
    maxPassenger = maxPassenger; 
    // list = new Passenger [maxPassenger]; 
    flightNo = flightNo; 
} 

Ich kann verstehen, dass es einen Konflikt in den Konstruktoren. Aber ich kann nicht genau herausfinden, was falsch ist. Jede Hilfe wäre sehr willkommen.

Antwort

0

Sie haben keinen Konstruktor, der keine Argumente akzeptiert.

Dieser Code list = new Passenger [maxPassenger]; ruft einen Konstruktor ohne Argumente Passenger() auf, aber es wird nicht einer angegeben, der den Fehler verursacht.

+0

Wird das Hinzufügen eines Konstruktors, der keinen Wert enthält, Auswirkungen auf die Liste haben? Ich versuche, eine Liste zu machen, die in Passagierobjekt nimmt, d. H. Es wird auch den Passagiernamen, SitzNo und FlightNo halten. so dass ich kann cout << Liste [2] .LastName Gibt es noch zusätzliche Dinge, die ich tun muss? – Mish

+0

Nein, dies hat keine Auswirkungen auf die Liste, aber die Passagierobjekte haben keine gültigen Werte für seatNo, FlightNo usw., es liegt an Ihnen, sie später korrekt zu initialisieren .. – bluefalcon

Verwandte Themen