Arantium Maestum

プログラミング、囲碁、読書の話題

2018-03-09から1日間の記事一覧

本日のvim道 2018.3.9

vim

vim力向上の一環で「これ使ってなかったけど、意識的に使っていきたいな」と思ったコマンドをちょこちょこメモっておこうと思う。 Normal modeでf{char}とt{char} 今いる行の次の{char}の位置、あるいはその前の位置まで飛ぶ。;を押すとその次の{char}まで飛…

Effective C++勉強メモ: Item 11 自己への代入に気をつけよう

例えばBオブジェクトがprivateデータメンバとしてAオブジェクトへのポインタを保持しているとする: class A {}; class B { private: A* pa; public: B& operator=(const B& rhs) { delete pa; pa = new A(*rhs.pa); return *this; } }; 上記のようなoperato…

Effective C++勉強メモ: Item 10 Assignmentの戻り値

operator=は*thisを返すようにしよう、という話。 x = y = z = 15という構文が可能なのは、右から評価されていくoperator=が左辺のオブジェクトを返しているから。 ただの慣習だが、よっぽどの理由がない限り従うべき慣習である。 個人的にも異論はない。

Thinking Functionally with Haskell勉強メモ: 第3章続 Type? Type Class?

Thinking Functionally with Haskellに”all numbers are instances of the type class Num”とあるが、”all number types are instances of the type class Num”の間違い?— zehnpaard (@zehnpaard) 2018年3月8日 というわけで第3章を読み返していて腑に落ち…

Effective C++勉強メモ: Item 9 virtual関数をコンストラクタ・デストラクタから呼ぶな

C++のコンストラクタは、まず最下層のベースクラスのものが呼び出されて、順次初期化されていって最終的に実際に作成されるオブジェクトのコンストラクタの処理が走る、という流れになる。 class A { public: A(); virtual void init(); }; A::A() { init();…