2016-05-02 14 views
-2

申し訳ありませんがタイトルが不明な場合は、私はここで私の問題をよりよく説明しようとします。C++クラスメソッドの1つでオブジェクトを呼び出す方法は?

私はクラス単位作成:

class Unit { 
    . 
    . (attributes) 
    . 
    public: 
    vector<Unit> getvoisins(Game Game0); 
    vector<Unit> getgroupe(Game Game0); 
}; 

をそして、getgroupeに、私は私がに法を適用していますユニットを参照してくださいどのように、問題がありますか?私は文章を書き始めました:

vector<Unit> Unit:: getgroupe(Game Game0) { 
    vector<Unit> L; 
    L.push_back(????);   
    return L; 
} 

問題のユニットをどのようにプッシュバックしますか?私がUnitA.getgroupeと呼ぶ場合、私はメソッドがL.push_back(UnitA)(そして次に他のもの)を実行したいが、それを書く方法はわからない。何を置き換えるのか?)

申し訳ありませんが、私はそれをうまく説明していないか、他のところで質問に答えられた場合、私は答えを見つけることができませんでした。問題。

+2

L.push_back(* this)を、 – Nadir

+1

変数名を小文字で始めるのが一般的です。つまり、 'Game0'ではなく' game0'です。また、一文字の変数もあまり記述的ではないので、悪い習慣です。例えば、リストを反復するために使用されるカウンタについては例外があります。 – martijnn2008

答えて

4

は、現在メソッドを呼び出すオブジェクトへのポインタです。 *thisは、ポインタが指しているオブジェクトです。あなたのケースでは

、これは動作するはずです:

vector<Unit> Unit::getgroupe(Game _game0) // why the parameter? 
{ 
    vector<Unit> L; 
    L.push_back(*this); // the object of "This" current object 

    return L; 
} 

アドバイス:適切な変数名

関連する問題