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