2011-10-24 6 views
1

私は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()メソッドをコールしようとしたとき、私はクラス型が必要であることを言っています。私は本当にエラーを理解していない。メソッドを正しく呼び出さないのですか?正しい構文は何ですか?

+2

試し '配列[I] - > getflightNum()また、航空'からfound' 'のすべてのインスタンスを削除することができます' –

+0

あなたがすぐに関数から戻ってくるアイテムを見つけたときから:: find'したがって、あなたは 'if(!found)'を必要としません。コードのその時点まで到達していれば、アイテムを見つけられず、 'return 0'をチェックする必要はありません。 – AusCBloke

答えて

4

あなたの代わりに実際のオブジェクトのポインタを扱っているので、これを試してみてください。

if(array[i]->getflightNum() == flightNum){  // Notice I am using -> instead of . 
    found = true; 
    return array[i]; 
} 
+0

ありがとう!これはうまくいった。私は前に - >を使ったことはありません。 – OghmaOsiris

関連する問題