Ceci est un jeu de labyrinthe basé sur la console. L'idée est d'écrire la classe de jeu dans un fichier d'en-tête et d'utiliser la classe dans le fil principal. Je ne suis pas sûr si je le fais bien parce que j'ai une erreur. Comment est-ce que j'inclurais un dossier d'en-tête dans mon code? J'utilise Cloud9 donc je ne sais pas s'il y a une différence entre Cloud9 et le logiciel IDE. Je suis très nouveau en C++, je ne l'utilise que depuis quelques semaines (3-4), donc j'aimerais savoir si je le fais correctement.Quelle est la meilleure façon d'inclure des fichiers d'en-tête dans un code C++?
Voici comment mon code est structuré:
Ceci est 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);
}
};
C'est MazeGame.cpp:
#include <iostream>
#include <MazeGame.h>
int main(){
Maze m = new Maze(16, 16);
return 0;
}
Les deux fichiers sont en le même répertoire. Cependant, je reçois cette erreur sur la console:
/home/ubuntu/workspace/Maze/MazeGame.cpp:4:22: fatal error: MazeGame.h: No such file or directory
#include <MazeGame.h>
^
Vous devez utiliser '#include' pour les en-têtes intégrés et '#include" XXX.h "' pour les en-têtes définis par l'utilisateur. –
Veuillez supprimer votre notation 'this->', elle n'est pas nécessaire en C++. Le langage C++ n'est pas Java. –
Vous pouvez déplacer des définitions de méthodes plus importantes vers un fichier source, ce qui devrait accélérer votre processus de construction. –