公共嵌套类和普通类之间有什么区别吗?

时间:2010-09-24 21:55:38

标签: c++ nested-class

让我说我有:

class A {

public:
    class B {

    };

};

该公共嵌套类与仅在其自己的cpp文件中定义的常规B类之间是否有任何区别,除了必须在第一个选项中使用A :: B的事实?

2 个答案:

答案 0 :(得分:9)

除了A::BA的成员之外,基本上没有区别,因此A的私有成员拥有任何其他成员所拥有的所有访问权限。< / p>

答案 1 :(得分:-1)

除了“B”的范围规则之外没有任何区别。使用“B”的客户必须使用“A ::”限定其范围。当你想要转发它时,嵌套“B”有时可能会有问题,因为C ++编译器通常不允许你在类中转发引用类(它允许你转发引用命名空间中的类)。 / p>