嵌套类

不要将嵌套类定义为public,除非是接口的一部分。 解释:这里是C++代码风格指南中的内容,如果读者朋友是其他语言的开发者,比如php,可以理解为除了接口类或者接口函数,其他函数和类不要定义为public。

  • 限制嵌套类的访问权限有助于隐藏类的内部实现细节,减少外部对内部状态的依赖。
  • 将嵌套类定义为privateprotected可以鼓励更好的封装和模块化设计。
  • 对于非接口类,定义为public可能会导致类的使用者直接依赖于嵌套类的实现,从而增加了代码的耦合性。

不推荐示例

class OuterClass {
public:
    class NestedClass { // 嵌套类被定义为public
        // ...
    };
};
  • 将NestedClass定义为public可能会导致外部代码直接依赖于NestedClass的实现细节,从而增加了代码的耦合性。

    推荐示例

    
    class OuterClass {
    private:
    class NestedClass { // 嵌套类被定义为private
        // ...
    };

public: void publicFunction() { NestedClass instance; // 在外部类中使用嵌套类 } };


- 将NestedClass定义为private有助于隐藏其实现细节,减少外部对内部状态的依赖。
- 通过public函数publicFunction来控制对NestedClass的访问,可以保持外部接口的清晰和简洁。