2011-07-01から1ヶ月間の記事一覧

const 宣言できたとしても、すべきでない場合

例として次のような int をラップしているだけの Number クラスを考える。 class Number { int *const v; public: Number() : v(new int(0)) {} ~Number() { delete v; } void set(int value) const { *v = value; } int get() const { return *v; } }; ここ…

今日の単語: agree

ジョディーの頭の中の声はまとまることがない。 彼らは同じことを決していわないのだ。 だれかが殺せといったとしても、ほかはひどい性暴力を喜んでいたりする。 The voices in Jodie's head never agree. They never say the same thing. One tells her to …

関数引数で初期化される変数と戻り値をともにクラスの const メンバーにしたい

C/C++ の関数は複数の値を戻すのが苦手なので、たいていのプログラマーは関数の引数を戻り値を格納する場所として使う方法に染められていく。 /* create new Object and returns its id */ Id object_initialize(/*[out]*/ Object** object); さて、この Id …

初期化リストにおける基底クラスの初期化順序

基底クラスの初期化につづけてメンバー変数の順で初期化されるから注意しましょうという話。テストケースをつくるときに、にかよった設定をするオブジェクトがたくさんあるので、そのベースクラスをつくり、ちょっとした違いを派生クラスでカバーしようと考…