Monday, December 8, 2008

C++ Code Example: Size of Virtual Class & NonVirtual Class

Sphere: Related Content /*
* In one of the Interviews, I had been asked what is the size of the Virtual and Non-Virtual Class. Here is program to compute
*/
#include <iostream>
using namespace std;


class Virtual // sizeof(Virtual) == 8
{
   private:
      int mv;
   public:
      Virtual() { mv = 0; }
      virtual ~Virtual() {}
      virtual int foo() const { return (mv); }
};

class NonVirtual // sizeof(NonVirtual) == 4
{
   private:
      int mnv;
   public:
      NonVirtual() { mnv = 0 ; }
      ~NonVirtual() {}
      int foo() const { return (mnv); }
};

int main()
{
   Virtual vClass;
   NonVirtual nvClass;

   cout << "Sizeof of virtual class" << sizeof(vClass) << endl;
   cout << "Sizeof of Nonvirtual class" << sizeof(nvClass) << endl;
   return 0;
}

No comments: