2017-02-01 204 views
0

我有一个头文件中的两个类,第二个类依赖于第一个类。 将此头文件包含在一个.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; 
} 

我能理解有冲突在构造函数中。但我无法弄清楚究竟出了什么问题。任何帮助将非常感激。

回答

0

您没有一个采用零参数的构造函数。

此代码list = new Passenger [maxPassenger];调用没有任何参数的构造函数Passenger()但没有声明导致错误。

+0

将添加一个名称没有值的构造函数会影响列表吗? 我正在尝试制作一个乘客对象列表,即它也会包含乘客姓名,seatNo和FlightNo。这样我就可以 cout << list [2] .lastName 有什么额外的事情我需要做? – Mish

+0

不,它不会影响列表,但乘客对象不会有任何有效的seatNo,FlightNo等值,这取决于你以后正确初始化它们.. – bluefalcon

相关问题