私はAirlineクラスがある場所でプログラムを開発しています。 Airlineクラスには、動的なFlightオブジェクトの配列に対して移動可能なクラスが含まれています。2つのastrisk構文とヘルプのメンバー関数を呼び出す
//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;
};
私がしようとしている:私は持っている航空会社クラスで
(編集または変更することはできません、これは割り当てのために私に与えられたヘッダファイルをしました)そのクラス内のfindメソッドの1つをインパメントします。そのため、私が持っている:
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()メソッドをコールしようとしたとき、私はクラス型が必要であることを言っています。私は本当にエラーを理解していない。メソッドを正しく呼び出さないのですか?正しい構文は何ですか?
試し '配列[I] - > getflightNum()また、航空'からfound' 'のすべてのインスタンスを削除することができます' –
あなたがすぐに関数から戻ってくるアイテムを見つけたときから:: find'したがって、あなたは 'if(!found)'を必要としません。コードのその時点まで到達していれば、アイテムを見つけられず、 'return 0'をチェックする必要はありません。 – AusCBloke