2

こんにちは私はXO.hのEclipseでC++を使用しました

class Master
{
private:
char board[3][3];

public:
Master();
void change_board(int choice[1],char color);
void start_play(Maximizer,Minimizer);
void end(char winner);
char winner();
void play(Maximizer,Minimizer);

};

class Maximizer{};
class Minimizer{};

Xo.cppで

void Master::start_play(Maximizer x ,Minimizer o)
{play(x,o);
 }

しかし、Eclipseは「プロトタイプ」というエラーを生成します。void Master::start_play(Maximizer, Minimizer)' does not match any in class Master助けてください

4

1 に答える 1

3

問題は、プロトタイプの時点ではまだ既知のタイプではないということだMaximizerと思います-との宣言。の定義の上に移動します。Minimizerstart_playplayclass Maximizer{};class Minimizer{};Master

class Maximizer{};
class Minimizer{};

class Master
{
private:
    char board[3][3];

public:
    Master();
    void change_board(int choice[1],char color);

    //above declaration of Maximizer and Minimizer required
    void start_play(Maximizer,Minimizer);

    void end(char winner);
    char winner();

    //above declaration of Maximizer and Minimizer required
    void play(Maximizer,Minimizer);

};

現状では、プロトタイプはMaster後の関数定義と一致しません。これは、プロトタイプの宣言の時点でMaximizerMinimizerまだ既知の型ではなく、関数の定義の時点では既知であるためです。

于 2013-03-17T13:29:51.390 に答える