読者です 読者をやめる 読者になる 読者になる

Accelerated C++第11章

C++ Accelerated C++

std::vector に相当する Vec を定義する話。

explicit

引数が一つだけのコンストラクタのみに適用できるもの。明示的にコンストラクタ呼び出しが必要なことを指定するもので、非明示的な変換によるコンストラクタ呼び出しを防止する。詳しくは12章へ。

演算子関数

原則:オブジェクトを変更する関数はメンバ関数とする

演算子関数はメンバ関数かもしれないし、メンバ関数でないかもしれない。しかしインデックス演算子は数少ないメンバ関数でなければならない演算子なのです。

演算子も含め、すべてのメンバ関数は、非明示的にオブジェクトそのものを引数に取るのです。

クラス設計

クラスの設計者は、オブジェクトの生成、コピー、代入、破棄を管理する。

これは、何度となく繰り返されるフレーズ。

代入

初期化と代入

デフォルトの動作

3のルール

強く結びついているもの。3つ。

まとめ(詳細)