2016-03-22 22 views
0

私は、このクラスの関数内の関数を呼び出そうとするこのオブジェクトを1つ持っています。私はこのような(ゲームクラスの)別のオブジェクトからこの関数を呼び出ししようとするとC++:C2511:オーバーロードされたメンバー関数が見つかりません。 'this'を使用するときの問題

void play(Game *const currentGame, int x, int y); 

:この関数は、この(クラスの選手 'に属している)のように見えます

player->play(this, x, y) 

とコンパイル時に私はこれらのエラーを取得:

Error 1 error C2061: syntax error : identifier 'Game' c:\users\shaqed\documents\visual studio 2013\projects\exe3\tictactoe.h 24 1 Exe3 
Error 3 error C2511: 'void Player::play(Game *const ,int,int)' : overloaded member function not found in 'Player' c:\users\shaqed\documents\visual studio 2013\projects\exe3\tictactoe.cpp 40 1 Exe3 
Error 4 error C2660: 'Player::play' : function does not take 3 arguments c:\users\shaqed\documents\visual studio 2013\projects\exe3\tictactoe.cpp 158 1 Exe3 

型の不一致がここにありますなぜ、しかし、私が把握できた私は、Javaから来たので、多分私は、ポインタと参照に関する基本原則のいくつかを欠いています。

ありがとうございます。

+0

常に最初のエラーを修正してください。それは他のものがそのカスケードエラーであるように見えます。ヘッダーの 'play'メソッドの宣言に到達すると、明らかに' Game'が何であるのか分かりません。それ以前に宣言されているか、宣言されていますか? – Cameron

答えて

0

同じコンパイルエラーで問題が繰り返されました。私はあなたのメソッドの最後にボディを追加するのを忘れてしまったと思います。 Like:

void play(const game * currentGame、int x、int y){}

+0

'Game * const currentGame'は完全に有効です(意図したものではないかもしれません)。これは 'current''という名前のパラメータを' const'(メソッド本体の中で再割り当てすることはできません)と宣言し、 'Game'オブジェクトを指しています。 – Cameron

+0

キャメロンあなたは絶対に正しいです。 –

関連する問題