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 成员变量,所有的对象共用一份,所以也不包含在对象中。