1

次のコードでエラーが発生します。エラーはとincomplete type is not allowedですuse of undefined type 'mGame'

header.h:

//--Libraries
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <iostream>
#include <string>
#include <sstream>
using namespace std;

//--Classes
class mGame;

Game.cc:

#include "header.h"

class mGame
{
private:

public:
    bool intro();
};

Intro.cc:

#include "header.h"

bool mGame::intro() //--Line 3
{
    printf("|-----------------------------|\n");

    printf("\n Welcome to the Guessing Game!\n");

    printf("\n|-----------------------------|\n");
    return false;
}

エラーは両方ともintro.ccの3行目にあります。私は解決策を見つけようとしましたが、私がしていることを見つけることができませんでした。

4

2 に答える 2

0

mGamefromを使用できるようにするにIntro.ccは、クラス宣言をheader.h(または from からインクルードする他のヘッダー ファイルにIntro.cc) 移動する必要があります。

前方宣言を持つだけでheader.hは十分ではありません (これは、「不完全な型は許可されていません」という意味です)。

于 2012-12-04T21:40:54.997 に答える
0

header.h は game.cc の定義を認識していないため、mGame クラスがあることだけを header.h に伝えます。game.cc の名前を game.h に変更して header.h にインクルードし、「class mGame;」という行を削除します。

于 2012-12-04T21:47:48.320 に答える