我正在开设一个航空公司课程。 Airline类包含一系列动态Flight对象的可移动性。
在我拥有的航空公司课程中(无法编辑或更改,这是我为作业提供的头文件):
//Airline.h
class Airline {
public:
Airline(); // default constructor
Airline(int capacity); // construct with capacity n
void cancel(int flightNum);
void add(Flight* flight);
Flight* find(int flightNum);
Flight* find(string dest);
int getSize();
private:
Flight **array; // dynamic array of pointers to flights
int capacity; // maximum number of flights
int size; // actual number of flights
void resize();
};
//Flight.h
class Flight {
public:
Flight();
// Default constructor
Flight(int fnum, string destination);
void reserveWindow();
void reserveAisle();
void reserveSeat(int row, char seat);
void setFlightNum(int fnum);
void setDestination(string dest);
int getFlightNum();
string getDest();
protected:
int flightNumber;
bool available[20][4]; //only four seat types per row; only 20 rows
string destination;
};
我正试图在课堂上使用其中一种查找方法。
为此,我有:
Flight* Airline::find(int flightNum){
bool found = false;
for(int i = 0; i < size; i++){
if(array[i].getflightNum() == flightNum){
found = true;
return array[i];
}
}
if(!found)
return 0;
}
// Return pointer to flight with given number if present, otherwise
// return 0.
但它说我在尝试调用getFlightNum()方法时需要一个类类型。我真的不明白这个错误。我没有正确地调用方法吗?什么是正确的语法?
答案 0 :(得分:4)
由于您正在处理指针而不是实际对象,请尝试以下方法:
if(array[i]->getflightNum() == flightNum){ // Notice I am using -> instead of .
found = true;
return array[i];
}