C++对象占用内存大小的思考(三)

2014-03-10 12:54:21 · 作者: · 浏览: 239

 

  5:当有静态变量时候

  #pragma once

  class TestClass

  {

  public:

  TestClass(void);

  ~TestClass(void);

  private:

  char c;

  int b;

  static int m;

  };

  结果:sizeof(TestClass) = 8

  原因:静态变量不占用类对象的内存

  6:当有虚函数

  #pragma once

  class TestClass

  {

  public:

  TestClass(void);

  virtual ~TestClass(void);

  private:

  char c;

  int b;

  };

  结果:sizeof(TestClass) = 12

  原因:此时类对象内部有一个指向虚函数表的指针,这个指针会占用4个字节的内存。