This may be very simple question ,but I cannot find the reason of this ,so at first I want to say that I am sorry.
class A{
 public:
    printA(void){
        cout << "\nA is the first letter of the alphabet";
    }
 private:
    double x;
};
class B : public  A{
 public:
    printB(void){
        cout << "\nB is the second letter of the alphabet";
        cout << "\nSize of y = " << sizeof(y);
    }
 private:
    float y;
};
int main(void){
   A firstObj;
   B secondObj;
   cout << "\nSize of firstObj = " << sizeof(firstObj);
   secondObj.printB();
   cout << "\nSize of secondObj = " << sizeof(secondObj);
   return 0;
}
I expected that size of obj1 is 8 because of double data member and my expectation is validated by the function main().
However, size of obj2 is equal to 16. Actually, I hope that It become 12 because of 8 + 4.
Why is size of obj2 equal to 16 ?
