我在头文件中有两个类,第二个类依赖于第一个。 将此头文件包含在.cpp文件中,我在其中实现Flight类的构造函数原型。编译给我以下错误:
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 :(得分:0)
你没有一个零参数的构造函数。
此代码list = new Passenger [maxPassenger];
调用不带任何参数Passenger()
的构造函数,但没有声明导致错误。