POD Geben Sie C++ ein
PODs in C++ steht für Plain Old Data. Es ist eine Klasse, die mit den Schlüsselwörtern struct
oder class
definiert ist und nur Datenelemente wie int, char, double, bool, signed/unsigned, long/short, float usw. hat.
POD Geben Sie C++ ein
Wie wir wissen, sind PODs im Allgemeinen eingebaute Datentypen wie Klassen und Strukturen, die Sie mit dem Schlüsselwort class
oder struct
definieren können, aber es ist nicht wie andere Klassen oder Strukturen. PODs in C++ unterstützen keine Konstruktoren, Destruktoren, virtuelle Funktionen usw.
PODs (Plain Old Data) in C++ sind eine aggregierte Klasse oder Struktur, die nur PODs als Datenelemente enthält. Es definiert keine benutzerdefinierten Kopierzuweisungsoperatoren oder andere nicht statische Elemente des Zeiger-auf-Element-Typs.
Beispielcode:
#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;
}
Ausgang:
x = 1
y = 2
Sum of x and y = 3
true
Dieser Code hat eine Klasse ADD
, die mit dem Schlüsselwort struct
definiert ist, und hat zwei Datenelemente – x
und y
. Werte werden den Klassenmitgliedern ADD
über das Klassenobjekt in der Hauptfunktion übergeben.
Diese Werte werden weiter addiert und als Ausgabe in der cout
-Anweisung angezeigt. Jetzt ist die Klasse fertig und es werden Werte übergeben.
Es ist an der Zeit zu prüfen, ob es sich um einen POD handelt oder nicht; die Funktion is_pod
hilft uns dabei. Es gibt True
zurück, wenn die Klasse ein POD ist, andernfalls False
.
Darüber hinaus sind Pointer, einschließlich Pointer-to-Member und Pointer-to-Function, PODs. Enums
, const
und volatile
sind ebenfalls PODs.
Ein struct
, class
oder union
von PODs ist ebenfalls ein POD, vorausgesetzt, dass alle nicht statischen Datenelemente als public
angegeben sind und keine virtuellen Funktionen, Konstruktoren oder Destruktoren und keine Basisklasse haben.
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn