ためになるホームページ お問い合わせ




TOP > C++ > const
constをメンバ変数につける
メンバ変数にconstを付けると、その変数は値を変えることができなくなる。その変数に初期値を与える時は、メンバ初期化リストで行う必要がある。一部のコンパイラでは、宣言と同時に値を代入する事ができない。

constをメンバ関数につける
メンバ関数自体にconstをつけると、そのメンバ関数内でメンバ変数の値を変更する事ができなくなる。
(書式)戻り値 関数名(...) const

constメンバ関数内で特定のメンバ変数の値を変更する
メンバ変数にmutableキーワードを付加すると、その変数はconstで宣言したメンバ関数内で値を変更する事ができる。

constの例
#include <iostream>
using namespace std;
class constTest
{
  //const宣言した変数は値を変更できない
  //尚、コンパイラによっては、宣言と代入を同時に行えない
  const int M_MAX_SIZE;
  //以下の変数はconst関数内で変更可
  mutable int m_test;
public:
  //メンバ初期化リストで初期値を与える
  constTest() : M_MAX_SIZE(100)
  {
  }
  //constで宣言したメンバ関数
  int getMaxSize() const
  {
    //mutableで宣言した変数はconst宣言した関数内で値を変更できる
    m_test = 3;
    //以下は、コンパイルエラー
    //M_MAX_SIZE =  100;
    return(M_MAX_SIZE);
  }
 
};


//テスト
int main(int argc, char** argv)
{
  constTest obj;
  cout << obj.getMaxSize() << endl;
  return(0);
}







Copyright 2007 ためになるホームページ All Rights Reserved.