2012/3/19追記 この記事の情報はC++03のものです。C++11ではPOD型の定義が異なっています。 POD(Plain Old Data)型とはコンストラクタがコンパイラが自動生成したデフォルトコンストラクタしか持たいない型のことです。int型やdouble型などの組み込み型、またはメンバ変数がPOD型しか持たない構造体やクラスもPOD型です。 一方自分で定義したコンストラクタを持つ型をnon-POD型と言います。メンバ変数にnon-POD型を持った構造体やクラスは自分自身はデフォルトコンストラクタしか持っていなくてもnon-POD型となります。 POD型のデフォルトコンストラクタは全てのメンバ変数を0で初期化し、メンバ変数が構造体やクラスの場合さらにその構造体やクラスのメンバ変数を0で初期化します。 non-POD型は宣言時や実体が作られる時にコンストラクタは呼ばれるが、POD