クラスに関するメモ
注意:コンストラクタのオーバーロードについて
Javaだとthis()を使って自身の別のコンストラクタを呼べるけど
C++ではC++11以降の仕様の模様(delegating constructorと呼ぶ)
一応書き方は
class Foo
{
int x;
int z;
public:
Foo(int x, int c) : x(x) { z = x * c; }
Foo(int x) : Foo(x, 5) {}
Foo() : Foo(12) {}
};
クラス定義
※ クラスの定義の終わりの括弧の後にセミコロン(;)を忘れないこと
※ 下記は何もない空のクラス
メンバの定義
class MyClass
{
int value; //メンバ変数の定義
void setValue(int foo) { //メンバ関数の定義
value = foo; // ここではメンバ変数valueの値を引数の値に変更している
}
void func(); //メンバ関数の宣言、定義はクラス定義の外で行う
};
void MyClass::func() { //クラス定義の外でのメンバ関数の定義、MyClass:: はMyClassのメンバであることを示す
std::cout << value << std::endl; //ここではメンバ変数valueを標準出力に書き出している
}
クラス宣言
※ クラスの定義とクラスの使用の(ソースコード内の)位置が前後する場合に
※ クラス定義の前に事前にクラスの存在を宣言する (関数の宣言に似ている)
//クラス宣言
class MyClass;
class HisClass;
//クラス定義
class MyClass
{
void foo(HisClass his);
};
class HisClass
{
void bar(MyClass my);
};
.
最終更新:2014年10月05日 00:27