目录标题
- 基本元素
-
- 3.1 类和结构体
-
- 3.1.1 \[必须] 使用恰当的访问修饰符来管理类成员的可见性
- 3.1.2 \[必须] 在类中合理使用默认的特殊成员函数
- 3.1.3 \[必须] 提供清晰且尽可能一致的类接口
- 3.1.4 \[建议] 优先使用初始化列表来初始化类成员
- 3.1.5 \[建议] 使用抽象基类和接口来设计可扩展系统
- 3.1.6 \[必须] 在多态基类中提供虚析构函数
- 3.1.7 \[建议] 恰当使用 `final` 和 `override` 关键字
- 3.1.8 \[必须] 在构造函数中遵循安全实践
- 3.1.9 \[建议] 适当使用命名构造函数提高代码的可读性和可维护性
- 3.1.10 \[建议] 使用工厂模式创建复杂对象
- 3.1.11 \[必须] 在对象生命周期结束时妥善清理资源
- 3.1.12 \[建议] 尽量避免使用多重继承
- 3.1.13 \[必须] 正确处理多重继承中的构造函数初始化列表
- 3.2 变量
- 3.3 函数相关规范
-
- 3.3.1 \[必须] 函数应保持单一职责
- 3.3.2 \[必须] 函数长度应保持简短
- 3.3.3 \[必须] 使用明确的函数参数传递方式
- 3.3.4 \[建议] 设计清晰和灵活的函数接口
- 3.3.5 \[建议] 函数返回值应清晰且易于理解
- 3.3.6 \[建议] 使用lambda表达式来简化简单的回调和局部函数
- 3.3.7 \[建议] 使用早返回(early return)提高代码可读性
- 3.3.8 \[建议] 在适当的情况下使用`[[nodiscard]]`属性
- 3.3.9 \[建议] 使用`constexpr`函数来优化编译时计算
- 3.3.10 \[建议] 明确函数的副作用并尽量减少不必要的副作用
- 3.4 命名空间的使用原则
- 3.5 跨平台设计规范
- 结语
基本元素
规范参考总结了Qt、微软、谷歌和AUTOSAR C++14 等规范。
3.1 类和结构体
3.1.1 [必须] 使用恰当的访问修饰符来管理类成员的可见性
- 类的成员应该根据其用途使用合适的访问修饰符进行分组。私有成员变量(private)应尽可能封装,以避免外部直接访问。 受保护成员(protected)应仅在需要被派生类访问时使用。公有成员函数(public)用于定义类的接口。
- 确保访问控制合理,避免过度暴露类的内部实现细节,从而增强类的封装性和可维护性。
示例:
- 使用访问修饰符组织类成员:
class MyClass { public: void publicMethod(); protected: void protectedMethod(); private: int privateMember; };