プログラミング > C++ > クラスに関するメモ

クラスに関するメモ



注意:コンストラクタのオーバーロードについて

Javaだとthis()を使って自身の別のコンストラクタを呼べるけど
C++ではC++11以降の仕様の模様(delegating constructorと呼ぶ)
一応書き方は
  1. class Foo
  2. {
  3. int x;
  4. int z;
  5. public:
  6. Foo(int x, int c) : x(x) { z = x * c; }
  7. Foo(int x) : Foo(x, 5) {}
  8. Foo() : Foo(12) {}
  9. };
  10.  

クラス定義

※ クラスの定義の終わりの括弧の後にセミコロン(;)を忘れないこと
※ 下記は何もない空のクラス
  1. class MyClass
  2. {
  3. };

メンバの定義

  1. class MyClass
  2. {
  3. int value; //メンバ変数の定義
  4. void setValue(int foo) { //メンバ関数の定義
  5. value = foo; // ここではメンバ変数valueの値を引数の値に変更している
  6. }
  7. void func(); //メンバ関数の宣言、定義はクラス定義の外で行う
  8. };
  9.  
  10. void MyClass::func() { //クラス定義の外でのメンバ関数の定義、MyClass:: はMyClassのメンバであることを示す
  11. std::cout << value << std::endl; //ここではメンバ変数valueを標準出力に書き出している
  12. }


クラス宣言

※ クラスの定義とクラスの使用の(ソースコード内の)位置が前後する場合に
※ クラス定義の前に事前にクラスの存在を宣言する (関数の宣言に似ている)
  1. //クラス宣言
  2. class MyClass;
  3. class HisClass;
  4.  
  5. //クラス定義
  6. class MyClass
  7. {
  8. void foo(HisClass his);
  9. };
  10.  
  11. class HisClass
  12. {
  13. void bar(MyClass my);
  14. };






+ ...
  1.  







.
最終更新:2014年10月05日 00:27