Trusted answers to developer questions

What are Plain Old Data (POD) types in C++?

Behzad Ahmad

Grokking the Behavioral Interview

Get Educative’s popular interview prep course for free.


A Plain Old Data (POD) structure is an aggregate class that contains only PODs as members. It doesn’t have any user-defined constructors or destructors. There are also no non-static members of the pointer-to-member type in it.

A POD structure is a struct or class which only has member variables. It doesn’t contain virtual functions, methods, constructors, destructors, and so on.

A POD is basically a type (including the classes) which ensures that there is no hidden thing in the compiler such as: hidden pointers to the vtable, constructors, destructors, etc. A type is a POD if the only things are built-in types and the combinations of the types.


Let’s discuss a basic example to understand the concept of POD.

using namespace std;
struct Employee
string name;
int age;
int main()
struct Employee e;
e.age = 21; = "Behzad";
return 0;


  • Lines 3–7: We make a struct that has two member variables, namely name and age.

  • Line 10: We make the object of the struct.

  • Lines 11–12: We assign values to the variables of the struct.

Since this struct doesn’t have any constructors or destructors, it’s an example of a POD.


Trusted Answers to Developer Questions

Related Tags

Keep Exploring
Related Courses