Tipo de POD en C++
POD en C++ significa Plain Old Data. Es una clase definida con las palabras clave struct
o class
y solo tiene miembros de datos como int, char, double, bool, firm/unsigned, long/short, float, etc.
Tipo de POD en C++
Como sabemos, los POD generalmente son tipos de datos integrados como clases y estructuras que puede definir con la palabra clave clase
o estructura
, pero no es como otras clases o estructuras. Los POD en C++ no admiten constructores, destructores, funciones virtuales, etc.
POD (Plain Old Data) en C++ es una clase o estructura agregada que contiene solo POD como miembros de datos. No define operadores de asignación de copia definidos por el usuario u otros miembros no estáticos del tipo de puntero a miembro.
Código de ejemplo:
#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;
}
Producción :
x = 1
y = 2
Sum of x and y = 3
true
Este código tiene una clase ADD
definida con la palabra clave struct
y tiene dos miembros de datos: x
e y
. Los valores se pasan a los miembros de la clase ADD
a través del objeto de clase en la función principal.
Estos valores se agregan y se muestran como salida en la instrucción cout
. Ahora, la clase está lista y se pasan los valores.
Es hora de comprobar si es un POD o no; la función is_pod
está aquí para ayudarnos. Devuelve True
si la clase es un POD y devuelve False
en caso contrario.
Además, los punteros, incluidos el puntero a miembro y el puntero a función, son POD. Enums
, const
y volatile
también son POD.
Una estructura
, clase
o unión
de POD también es un POD, siempre que todos los miembros de datos no estáticos se especifiquen como públicos
y no tengan funciones virtuales, constructores o destructores, y clase base.
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn