「POD」の版間の差分

提供: C++入門
移動: 案内検索
(ページの作成:「POD (Plain Old Data)とは、C言語の構造体と互換性のあるオブジェクトレイアウトで、連続したバイトで表現できる型です。memcpy(...」)
 
(相違点なし)

2015年3月1日 (日) 23:15時点における最新版

POD (Plain Old Data)とは、C言語の構造体と互換性のあるオブジェクトレイアウトで、連続したバイトで表現できる型です。memcpy()でコピーができ、memset()で初期化できる、ということです。

読み方

POD
ぴーおーでぃー、ぽっど
Plain Old Data
ぷれいん おーるど でーた

概要

C++98 では、以下のようになっていました。

  • 構造体 S は、PODです。
  • 構造体 T は、PODではありません。
struct S {
	int a;
};
struct T {
	int a;
	T(int a_) : a(a_) { }
};

C++11では、上記の構造体 S と T は、標準レイアウト型(POD)となりました。コンストラクタは、レイアウトに影響を与えません(つまり、memcpy() が動作します)。

POD である条件

  • 仮想関数がない
  • 仮想基底型がない
  • リファレンスがない
  • 複数のアクセス指定子がない

PODを使う理由

PODを定義すると、C言語とデータの受け渡しが可能になります。

関連項目