2016-11-21 12 views
2

これはコンソールベースの迷路ゲームです。アイデアは、ゲームクラスをヘッダーファイルに書き込んで、メインスレッドのクラスを使用することです。私は間違いがあるので、私はそれを正しくやっているかどうか分からない。私のコードにどのようにヘッダファイルを含めるのですか?C++コードでヘッダファイルをインクルードするより良い方法は何ですか?

私はCloud9を使用しているので、Cloud9とアプリケーションソフトウェアIDEの間に違いがあるかどうかはわかりません。私はC++には新しく、数週間(3-4)しか使用していないので、私が正しいことをしているかどうかを知りたいです。

#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次のとおりです:

​​

両方のファイルがである

これでMazeGame.h:ここ

は私のコードが構成されている方法です同じディレクトリ。しかし、私は、コンソール上で、このエラーを取得しています:

/home/ubuntu/workspace/Maze/MazeGame.cpp:4:22: fatal error: MazeGame.h: No such file or directory 
#include <MazeGame.h> 
       ^
+7

組み込みヘッダーには '#include 'を、ユーザー定義ヘッダーには '#include" XXX.h "'を使用するべきです。 –

+0

'this->'表記を削除してください。これはC++では必要ありません。 C++言語はjavaではありません。 –

+0

より大きいメソッド定義をソースファイルに移動したい場合は、ビルドプロセスをスピードアップする必要があります。 –

答えて

関連する問題