跳转至

一个简单类

具有普通函数的类(如清单 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() 调用会输出以下内容:

Size 8; Address 0x2efd80 : _bar

尽管 bar 有两个成员函数,这个输出显示它只占用保存 bar1 和 bar2 所需的 8 字节。这是因为 bar 类不包含这些成员函数的抽象,所以程序可以直接调用它们。

 public、private 和 protected 等访问级别不会在内存中显现。无论这些修饰符如何,类的成员仍然按定义顺序排列。