让我说我有:
class A {
public:
class B {
};
};
该公共嵌套类与仅在其自己的cpp文件中定义的常规B类之间是否有任何区别,除了必须在第一个选项中使用A :: B的事实?
答案 0 :(得分:9)
除了A::B
是A
的成员之外,基本上没有区别,因此A
的私有成员拥有任何其他成员所拥有的所有访问权限。< / p>
答案 1 :(得分:-1)
除了“B”的范围规则之外没有任何区别。使用“B”的客户必须使用“A ::”限定其范围。当你想要转发它时,嵌套“B”有时可能会有问题,因为C ++编译器通常不允许你在类中转发引用类(它允许你转发引用命名空间中的类)。 / p>