Here is the code which prints size of different classes
#include
using namespace std;
class EmptyClass
{
};
class AbstractClass
{
publi
According to Girish Shetty:
There are many factors that decide the size of an object of a class in C++.
These factors are:
- Size of all non-static data members
- Order of data members
- Byte alignment or byte padding
- Size of its immediate base class
- The existence of virtual function(s) (Dynamic polymorphism using virtual functions).
- Compiler being used
- Mode of inheritance (virtual inheritance)
Here there are some related website, I think it can be helpful to you.
Determine the size of class object: http://www.cprogramming.com/tutorial/size_of_class_object.html
Memory layout: http://www.phpcompiler.org/articles/virtualinheritance.html
And, if you use MVSC, you can dump all memory layout of all class in your solution with -d1reportAllClassLayout
like that:
cl -d1reportAllClassLayout main.cpp