Определение класса и ошибки использования
Я получаю ошибки со следующим кодом. Ошибки 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;
}
Обе ошибки находятся в строке 3 intro.cc. Я пытался найти решение, но я не мог за то, что я делаю.
2 ответа
header.h не знает никаких определений game.cc, вы только указываете header.h, что существует класс mGame. переименуйте game.cc в game.h и включите его в header.h и удалите строку "class mGame;"
Чтобы иметь возможность использовать mGame
от Intro.cc
, вы должны переместить объявление класса в header.h
(или в другой заголовочный файл, который вы включаете из Intro.cc
).
Наличие предварительной декларации в header.h
недостаточно (это то, что подразумевается под "неполный тип не допускается").