当我尝试声明我的类'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 ++所以我可能忽略了一些明显的东西:(
答案 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