1. 問題
請問如下的一個 class 的一個對象占了多少內存?
具體包含哪些東西? non-static 變量? static member 變量? member function?? virtual function??
class A{ public: virtual void print(); private: int a; static double b; };
答案是 8 個字節。
C++ 對象包含了 non-static member 變量, 如果包含 虛函數的話,還包括一個指向虛函數表的 vtpr ( 4 BYTE).
至於成員函數都存儲是對象外面,
static 成員變量,所有的對象共用一份,所以也不包含在對象中。