to_yuna to_yuna 2012-09-11 11: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 pragmanaka 2013-08-20 14:50:57  

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

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

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

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

Twitter認証

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

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

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

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

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

鑑賞する »

[JavaScript] とっても長いswitch/case文

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

配列変数を全く理解できていなかった。

var rnd = Math.floor(Math.random() * 128...

鑑賞する »

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

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

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

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

鑑賞する »