L_J_SHOU

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



posted on 2014-04-25 23:06  L_J_SHOU  阅读(108)  评论(0)    收藏  举报