【C++】.hpp .hファイルって何だ?!
OFの勉強を始めるにあたって
下記の書籍を参考にさせていただきました。 yoppa.org
今日は、p133からのC++の部分を読みながら、勉強した内容をメモします。 勉強を始めたばかりなので、間違えていたら教えてください。
■ヘッダーファイル
他のファイルでも使えるような定義を入れる
.hppや.hというファイル形式で保存
■.hppと.hの違い
.hpp はC++が入っているという意味
.h はC言語(C++で利用することもある)
■ヘッダーガード
複数のファイルから同じヘッダーファイルがincludeされた場合、コンパイル中に作成される定義が重複したら困るので、ヘッダーガードが存在する。
(コンパイルの際の動きとしては、複数のファイルを別々にコンパイルしてから、まとめて一つの実行ファイルを作成する。)
ヘッダーガードをするために、下記の3つのコードを記載する。
#ifndef //ヘッダーファイルを作るときに先頭に記載する #define //変数を定義 #endif //ヘッダーファイルを作るときの最後に記載する
これら3つのコマンドでヘッダーファイルが一回のみ読み込まれる。
1回目の読み込み → #ifndef の中に入り、ifndef 以下のコードを読む。
2回目以降→ コンパイル中にすでに定義されている状態になり読み込まない。
■#include
#include <iostream> //iostreamはC++のファイルの読み込みなどができるライブラリ //ちなみにincludeは、ファイルの中身を全部コピペしている。 //例えば<iostream>の場合はiostreamをばっと全部コピーしている
サンプルコード
#ifndef Test_hpp //ヘッダーファイルを作るときに先頭に記載するもの #define Test_hpp //変数を定義 #include <iostream> using namespace std; class Test { // Testクラスの定義 public: string name; //名前 (状態) }; //Testクラスの定義終了 (最後に";"が入るのに注意) #endif /* Test_hpp */ //ヘッダーファイルを作るときの最後
じゃーねぇ(^^)