C++ の POD 型
 
C++ の POD は Plain Old Data の略です。 これは、キーワード struct または class で定義されたクラスであり、int、char、double、bool、signed/unsigned、long/short、float などのデータ メンバーのみを持ちます。
C++ の POD 型
私たちが知っているように、POD は通常、キーワード class または struct で定義できるクラスや構造体のような組み込みデータ型ですが、他のクラスや構造体とは異なります。 C++ の POD は、コンストラクタ、デストラクタ、仮想関数などをサポートしていません。
C++ の POD (Plain Old Data) は、データ メンバーとして POD のみを含む集約クラスまたは構造体です。 ユーザー定義のコピー代入演算子や、ポインターからメンバーへの型の他の非静的メンバーは定義しません。
コード例:
#include <iostream>
using namespace std;
// POD (Plain Old Data)
struct Add {  // defined with the keyword struct
  int x;
  int y;
};
int main() {
  struct Add a;
  a.x = 1;
  a.y = 2;
  cout << "x = " << a.x << endl << "y = " << a.y << endl;
  cout << "Sum of x and y = " << a.x + a.y << endl;
  std::cout << std::boolalpha;
  std::cout << std::is_pod<Add>::value << '\n';  // this is to check POD,
                                                 // it returns Boolean value
  return 0;
}
出力:
x = 1
y = 2
Sum of x and y = 3
true
このコードには、キーワード struct で定義されたクラス ADD があり、x と y の 2つのデータ メンバーがあります。 値は、メイン関数のクラス オブジェクトを介して ADD クラス メンバーに渡されます。
これらの値はさらに追加され、cout ステートメントの出力として表示されます。 これで、クラスの準備が整い、値が渡されます。
POD かどうかを確認する時が来ました。 関数 is_pod は私たちを助けるためにここにあります。 クラスが POD の場合は True を返し、それ以外の場合は False を返します。
さらに、メンバーへのポインターおよび関数へのポインターを含むポインターは POD です。 Enums、const、および volatile も POD です。
POD の struct、class、または union も POD です。ただし、すべての非静的データ メンバーが public として指定され、仮想関数、コンストラクタ、デストラクタ、および基本クラスを持たない場合に限ります。
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn