いろきゅうの(元)はてなダイアリー

はてなダイアリーから移行中…

ちょっとした発見

class A
{
  int n;
public:

  A(int a){ func(a); }

  // 非 const 関数
  int func(int a) { return n = a; }
};

int main()
{
  A         a   = 0; // OK
  const A aa = 9; // OK

  return 0;
}

const なオブジェクトでも、コンストラクタ内であれば、非constな関数が呼べるんですねー。ちょっと発見でした。

…が、考えてみれば、コンストラクタ内で既に this が const だったら、何も値が初期化できませんわなぁ。