「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言語とデータの受け渡しが可能になります。