一个对象(创建)在另一个 Class 中的 C++ 数组
C++ Array of an object (created) inside another Class
我在头文件中有两个 class,第二个 class 依赖于第一个。
将此头文件包含在 .cpp 文件中,我在其中实现了 Flight class 的构造函数原型。编译给我以下错误:
Error: no matching function for call to ‘Passenger::Passenger()’
Flight::Flight(int maxPassenger, int flightNo) {
这是我的头文件中的两个 classes
/*
*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;
}
我可以理解构造函数中存在冲突。但我无法弄清楚到底出了什么问题。任何帮助将不胜感激。
您没有采用零参数的构造函数。
这段代码 list = new Passenger [maxPassenger];
调用了一个不带任何参数的构造函数 Passenger()
但是没有声明导致错误的构造函数。
我在头文件中有两个 class,第二个 class 依赖于第一个。 将此头文件包含在 .cpp 文件中,我在其中实现了 Flight class 的构造函数原型。编译给我以下错误:
Error: no matching function for call to ‘Passenger::Passenger()’
Flight::Flight(int maxPassenger, int flightNo) {
这是我的头文件中的两个 classes
/*
*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;
}
我可以理解构造函数中存在冲突。但我无法弄清楚到底出了什么问题。任何帮助将不胜感激。
您没有采用零参数的构造函数。
这段代码 list = new Passenger [maxPassenger];
调用了一个不带任何参数的构造函数 Passenger()
但是没有声明导致错误的构造函数。