1

为了让我的问题更清楚,我将举一个简化的例子:

class Foo {
public:
    class Bar {
        int garbage[1000000];
    };
    void playWithGarbage() {
         //whatever...
    }
 }

现在,如果我生成大量 Foo 实例并通过值或引用传递它们。会有任何重大开销吗?我测试了大小,没问题:sizeof(Foo)返回 1

4

1 回答 1

5

类型的对象不会有任何开销FooFoo只是充当一个名称空间,其中Bar包含。对象的存在Foo::Bar独立于Foo对象的存在。但是,如果Foo有一个Bar成员,那么类型的对象Foo将具有类型的子对象,Bar因此具有增加的大小。

于 2013-05-21T17:32:41.040 回答