はじめてのC++ ~クラス編~
スポンサーリンク
このあたりから急に難しくなり、挫折する人も多いのでしっかり学びましょう。
オブジェクト指向についてまだ勉強していない人は、先にこちらを読んでみてください。
クラスの宣言
「myclass.h」というファイルを作り、以下のようなコードを書いてみてください。
class myclass { int age; public: void set_age(int n); int get_age(); };
まず、
class myclass{
}
でクラス名を指定します。
次に
int age;
はメンバ変数の宣言です。
アクセス指定子が書いていない場合はprivateです。
つまり、変数ageは他のクラスからは見えません。
アクセスの範囲を変えたい場合は
public:
のように書きます。
"public:"と書かれた場所以降のすべてのメンバは、他のクラスからアクセス可能になります。
void set_age(int n); int get_age();
は関数のプロトタイプ宣言と呼ばれます。
というように書きます。
ヘッダファイルの概要
C++ではクラスの定義やメンバ関数のプロトタイプ宣言、メンバ変数の宣言をヘッダファイルに書き、メンバ関数の定義はソースファイルに書くのが一般的です。
ヘッダファイルには「.h」拡張子を付けます。
また、対応するソースファイルと拡張子以前のファイル名を同じにします。
(ソースファイルがfile.cppならヘッダファイルはfile.hとする)
関数の定義
今のままでは関数の中身が定義されていません。
「myclass.cpp」ファイルに以下のコードを記述してください。
#include "myclass.h" void myclass::set_age(int n) { age = n; } int myclass::get_age() { return age; }
ヘッダファイルをインクルードするのを忘れないようにしましょう。
main関数
main関数は一番最初に実行される関数です。
「main.cpp」というファイルに以下のコードを記述してください。
#include <iostream> #include "myclass.h" int main() { myclass yamada; yamada.set_age(20); int age = yamada.get_age(); std::cout << age << "\n"; }
まず、
myclass yamada;
でmyclass型のyamadaオブジェクトを宣言します。
次に、メンバ関数を呼び出す際は、「オブジェクト名.関数名」で行います。
yamada.set_age(20); int age = yamada.get_age();
上のコードはそれぞれメンバ関数を呼び出しています。
コンパイルは以下のように行います。
g++ main.cpp myclass.cpp -o main
実行すると「20」と表示されるはずです。