to_yuna 2012-09-11 02:13:23

[C++] constとは一体… このエントリーをはてなブックマークに追加

投稿者からのアピールポイント

constの意味あるの…?

class Hoge
{
private:
  // メンバ変数は数百あるが全てmutable
  mutable int x;

public:
  // メンバ関数全てconst指定
  void move()const
  {
    x += 100;
  }

  void func()const
  {
    x = 100;
  }
};

void MoveHoge( const Hoge& foo )
{
  foo.move();
}

int main()
{
  Hoge hoge;

  MoveHoge( hoge );

  return 0;
}

使い方ヒント: 「これは臭う」という行を見付けたら、各行のsmellをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

コメント(2)

#1 pragmanaka 2013-08-20 05:50:57  

mutableの使いどころが分からない、設計ミスでは?

#2 utubyou009 2017-08-01 07:47:21  

const Hoge hoge; としても MoveHoge が使えるようにしたんですね。分かります。せっかくだから、operator= も constメンバ関数として定義しましょう。

コメント投稿には、twitter認証が必要です。

Twitter認証

このウンコードに臭った人は、こちらのウンコードにも臭ってます

[C] 既存のコードを極力残したかったらしい。

このエントリーをはてなブックマークに追加

特別仕様版で関数の機能変えたかったみたい...

/*プロトタイプ宣言省略*/

/*関数hogehoge*/
#ifnde...

鑑賞する »

[C++] ダイナミック型変換

このエントリーをはてなブックマークに追加

その dynamic はそういう意味じゃ...

// デフォルトの dynamic_cast ではダイナミックにキャストできない...

鑑賞する »

[C] 何がしたかったのか

このエントリーをはてなブックマークに追加

10年位前、炎上しているプロジェクトの支...

void funcX() {
    int a;
    a = func...

鑑賞する »