C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++のアグリゲートとPODとは何ですか?


PODはC++の頭字語で、単純な古いデータを意味します。これは、メンバー変数のみを持ち、メソッド、コンストラクタ、デストラクタ、仮想関数などを持たないクラス/構造体です。たとえば、

#include<iostream>
using namespace std;

// POD
struct MyStruct {
   int key;
   string data;
};
int main() {
   struct MyStruct s;
   s.key = 1;
   s.data = "hello";
   return 0;
}

構造体MyStructには、ユーザー定義のctor、dtorなどがないため、PODです。

アグリゲートは、ユーザーが宣言したコンストラクター、プライベートまたは保護された非静的データメンバー、基本クラス、仮想関数を含まない配列またはクラスです。

集約クラスは、ユーザー定義のコピー代入演算子とデストラクタがなく、その非静的メンバーのいずれも非PODクラス、非PODの配列、または参照ではない場合、PODと呼ばれます。


  1. C ++のcin、cout、cerrストリームとは何ですか?

    cin 、cout、cerr、 および詰まり 標準入力と標準出力を処理するストリームです。これらは、iostreamヘッダーファイルで定義されたストリームオブジェクトです。 std :: cin (char型の)狭い文字に向けられた標準の入力ストリームを表すクラスistreamのオブジェクトです。 Cストリームstdinに対応します。標準の入力ストリームは、環境によって決定される文字のソースです。通常、キーボードやファイルなどの外部ソースからの入力と見なされます。 std :: cout (char型の)狭い文字に向けられた標準出力ストリームを表すクラスostreamのオブジ

  2. C ++の符号付きおよび符号なしキーワードとは何ですか?

    C ++のすべての数値タイプには、符号を付けることも付けないこともできます。たとえば、正の整数のみを表すintを宣言できます。特に指定がない限り、すべての整数データ型は符号付きデータ型です。つまり、正または負の値をとることができます。 unsignedキーワードは、符号なしの変数を宣言するために使用できます。 例 #include<iostream> using namespace std; int main() {    unsigned int i = -1;    int x = i;    cout <&l