c++ - C++11 之后的 C++ 类分类

标签 c++ c++11 c++14

<分区>

Sutter and Alexandrescu以一种非常简单和自包含的方式描述了 C++ 类的生态系统,提供了 6 个主要类别

  1. 类(例如,std::pair、std::vector)
  2. 类(类层次结构的构建 block )
  3. Traits 类(包含类型信息的模板)
  4. 策略类(可插入行为的片段)
  5. 异常
  6. 辅助类通常支持特定习语(例如 RAII)

在决定类设计时,这是一个非常方便的捷径,我' 我以前用过它,但有两件事在起作用:2004 年(那本书出版的那一年)在软件工程领域是很久以前,从那以后就有了新的语言标准。我不禁想知道:

  • 这个分类是否仍然相关?
  • 是否有任何新项目对上述列表进行了修改?
  • 是否有其他分类,由具有相应权威的作者分类?
  • 是否有 C++ 类的标准分类法? (据我所知,这也可能是它)

注意:

希望上面的4个问题有个明确的设定。为了避免基于意见的答案,有效的答案应该链接/提及示例、代码使用或验证其陈述的标准摘录。

最佳答案

在这样的分类中,我还将 Inner classes 作为声明包含的类的类型。例如 Engine 包含在 Vehicle 中:

class Vehicle{
    public:
    class Engine{

    };
    Engine* vehicle_engine;
};

但是降低了代码的可读性。我更喜欢组合而不是内部类。区分语言特征类型的类和设计模式并不是那么容易。例如 Singleton 可以属于那个分类吗?

关于c++ - C++11 之后的 C++ 类分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21952735/

相关文章:

c++ - 应用一组 N 个函数中的第一个有效函数

c++ - 无效和非无效方法之间的 SFINAE 调度

c++ - 程序在其中一种情况完成后终止,但其他情况则不会

c++ - 为什么我需要在这里指定模板函数的模板参数类型?

C++ Person 类 - 无法输出值和修改元素

带有模板基类的 C++ std::shared_pointer

c++ - C++ 筛选代码中的不可见内存错误

c++ - union 中的字符串、段错误

C++。加权 std::shuffle

c++ - 检测 parking 场线和ROI openCV