2

假设我有:

class A {

public:
    class B {

    };

};

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

4

2 回答 2

9

本质上没有区别,只是它A::B是 的成员,因此具有对任何其他成员A的私有成员的所有访问权限。A

于 2010-09-24T21:58:30.180 回答
-1

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

于 2010-09-24T22:41:41.917 回答