错误:'x'没有命名类型

时间:2011-12-12 06:50:22

标签: c++ class types codeblocks

当我尝试声明我的类'Game'的实例时,我收到编译错误“错误:'游戏'没有为main.cpp命名类型。

如果可能无关紧要,但我正在使用代码块。

Game.cpp的相关代码

#include "../include/main.h"

class Game
{
    private:

    public:
};

Main.cpp的相关代码

#include "../include/main.h"

Game g; //this is the line it is referring to

int main(int argc, char* args[])
{
    return 0;
}

我只是开始学习c ++所以我可能忽略了一些明显的东西:(

3 个答案:

答案 0 :(得分:3)

在标题

中加入“游戏”声明

notepad main.h =>

#ifndef MAIN_H
#define MAIN_H

class Game
{
    private:
      ...
    public:
      ...
};
#endif
// main.h

notepad main.cpp =>

#include "main.h"

Game g; // We should be OK now :)

int 
main(int argc, char* args[])
{
    return 0;
}

gcc -g -Wall -pedantic -I../include -o main main.cpp

请注意:

1)在标题

中定义您的类(以及任何typedef,常量等)

2)#include任何需要这些定义的.cpp文件中的标题

3)使用“-I”编译以指定包含标题的目录(或目录)

'希望有所帮助

答案 1 :(得分:0)

也许你可以删除Game.cpp中的Game类声明并尝试在../inclue/下创建另一个名为“Game.h”的文件:

#ifndef _GAME_H_
#define _GAME_H_

class Game
{
    private:
    public:
};

#endif

并在Main.cpp中包含此Header文件。然后我认为错误不会发生:)

因为我们通常使用.cpp文件进行类定义,使用.h文件进行声明,然后在Main.cpp中包含.h文件。

答案 2 :(得分:0)

C文件或cpp文件是编译时发生多个错误的问题。

每个

的头文件
 # pragma once 
 Or
 # Ifndef __SOMETHING__ 
 # define __SOMETHING__

 Add the code ...

 # Endif