Open In App

C++ | Class and Object | Question 5

Like Article
Like
Save
Share
Report

Assume that an integer and a pointer each takes 4 bytes. Also, assume that there is no alignment in objects.

Predict the output following program.




#include<iostream>
using namespace std;
  
class Test
{
    static int x;
    int *ptr;
    int y;
};
  
int main()
{
    Test t;
    cout << sizeof(t) << " ";
    cout << sizeof(Test *);
}


(A) 12 4
(B) 12 12
(C) 8 4
(D) 8 8


Answer: (C)

Explanation: For a compiler where pointers take 4 bytes, the statement “sizeof(Test *)” returns 4 (size of the pointer ptr).

The statement “sizeof(t)” returns 8. Since static is not associated with each object of the class, we get (8 not 12).

Quiz of this Question


Last Updated : 28 Jun, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads