Effective C++ 第2章5項
C++でクラスを宣言したときには自動で作られる関数がある。
class Test {};
と書いたとしても次のように書かれたのと同じである。
class Test { public: Test() {...} Test(const Test& rhs) {...} ~Test() {...} Test& operator=(const Test& rhs) {...} };
デフォルトコンストラクタ、コピーコンストラクタ、デストラクタ、コピー代入演算子が自動的に作られる。実際には必要なときにだけ作られるのだが、普通にコードを書いていればこれらは使われているだろう。
また、自前で引数を取るコンストラクタを作成した場合はデフォルトコンストラクタは作られない。