Это консольная игра-лабиринт. Идея состоит в том, чтобы написать класс игры в файле заголовка и использовать класс в основном потоке. Я не уверен, что делаю это правильно, потому что получаю сообщение об ошибке. Как включить заголовочный файл в свой код?Что такое лучший способ включения заголовочных файлов в код на C++?
Я использую Cloud9, поэтому я не знаю, есть ли разница между Cloud9 и программным обеспечением IDE. Я очень новичок в C++, только использовал его в течение нескольких недель (3-4), поэтому я хотел бы знать, правильно ли я делаю это правильно.
Вот как структурирована мой код:
Это MazeGame.h:
#ifndef MAZEGAME_H
#define MAZEGAME_H
class Maze{
protected:
int width;
int height;
std::string maze;
public:
Maze(int width, int height){
this->width = width;
this->height = height;
}
static void setMazeBlock(std::string value){
this->maze += value;
}
void destroyMazeBlock(int set){
this->maze[set] -= this->maze[set];
}
std::string getMazeDrawing(){
return this->maze;
}
void setMazeDrawing(std::string val){
this->maze = val;
}
void drawMaze(int times = 1){
for(int i = 0; i <= times; ++i){
std::cout << this->maze;
}
}
void generate(){
for(int i = 0; i < this->width; ++i){
this->setMazeBlock("#");
}
this->setMazeBlock(std::endl);
for(int i = 0; i < this->width; ++i){
this->setMazeBlock("#");
for(int j = 0; j < this->height; ++j){
this->setMazeBlock(std::endl);
if(j == this->width){
this->setMazeBlock("#");
}
}
}
for(int i = 0; i < this->width; ++i){
this->setMazeBlock("#");
}
this->setMazeBlock(std::endl);
}
};
Это MazeGame.cpp:
#include <iostream>
#include <MazeGame.h>
int main(){
Maze m = new Maze(16, 16);
return 0;
}
Оба файла находятся в тот же каталог. Тем не менее, я получаю эту ошибку на консоли:
/home/ubuntu/workspace/Maze/MazeGame.cpp:4:22: fatal error: MazeGame.h: No such file or directory
#include <MazeGame.h>
^
Вы должны использовать '#include' для встроенных заголовков и '#include" XXX.h "для пользовательских заголовков. –
Пожалуйста, удалите свою 'this->' нотацию, она не нужна в C++. Язык C++ не является Java. –
Возможно, вам захочется переместить более крупные определения методов в исходный файл, что должно ускорить процесс сборки. –