一个简单类¶
具有普通函数的类(如清单 4-4 中的 bar)遵循与结构相同的内存布局。
class bar {
public:
bar() : bar1(0x898989), bar2(0x10203040) {}
void myfunction() { bar1++; }
int bar1, bar2;
};
bar _bar = bar();
printf("Size %d; Address 0x%x : _bar\n",
sizeof(_bar), &_bar);
清单 4-4:一个 C++ 类
清单 4-4 中的 printf() 调用会输出以下内容:
尽管 bar 有两个成员函数,这个输出显示它只占用保存 bar1 和 bar2 所需的 8 字节。这是因为 bar 类不包含这些成员函数的抽象,所以程序可以直接调用它们。
注 public、private 和 protected 等访问级别不会在内存中显现。无论这些修饰符如何,类的成员仍然按定义顺序排列。