1

我收到以下代码错误。错误是incomplete type is not alloweduse of undefined type 'mGame'

标头.h:

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

//--Classes
class mGame;

游戏.cc:

#include "header.h"

class mGame
{
private:

public:
    bool 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

header.h 不知道game.cc 的任何定义,你只告诉header.h,有一个类mGame。将 game.cc 重命名为 game.h 并将其包含在 header.h 中并删除“class mGame;”行

于 2012-12-04T21:47:48.320 回答
0

为了能够使用mGamefrom Intro.cc,您必须将类声明移动到header.h(或包含 from 的其他一些头文件中Intro.cc)。

有一个前向声明header.h是不够的(这就是“不允许不完整类型”的意思)。

于 2012-12-04T21:40:54.997 回答