C++ Daily 《1》----关于对象

1. 问题

请问如下的一个 class 的一个对象占了多少内存? 

具体包含哪些东西? non-static 变量? static member 变量? member function?? virtual function??

class A{
public:
  virtual void print();
private:
  int a;
  static double b;
};


2. 解答

答案是 8 个字节。

C++ 对象包含了 non-static member 变量, 如果包含 虚函数的话,还包括一个指向虚函数表的 vtpr ( 4 BYTE).

至于成员函数都存储是对象外面,

static 成员变量,所有的对象共用一份,所以也不包含在对象中。



你可能感兴趣的:(C++,对象模型)