C++类在C++11之后的分类
Categorization of C++ classes post C++11
Sutter和Alexandrescu以一种非常简单和独立的方式描述了C++类的生态系统,提供了6个主要类别
- 值类(例如,std::pair、std::vector)
- 基本类(类层次结构的构建块)
- 特性类(包含类型信息的模板)
- 策略类(可插拔行为的片段)
- 异常类
- 辅助类,通常支持特定习惯用法(例如RAII)
当我决定课程设计时,这是一个非常方便的快捷方式我以前用过它,但有两件事在起作用:2004年(这本书出版的那一年)在软件工程中是很久以前的,从那时起有了一个新的语言标准。我不禁想知道:
- 这种分类是否仍然相关
- 上面的清单上有新的项目吗
- 是否有另一种分类方法,由具有同等权威权力的作者进行分类
- c++类有标准的分类法吗?(据我所知,这也可能是它)
注意:
我希望上面的4个问题有一个清晰的背景。为了避免基于观点的答案,有效的答案应该链接/提及验证其状态的示例、代码使用或标准摘录。
在这样的分类中,我还将Inner classes
作为声明包含的类的类型。例如,发动机包含在车辆中:
class Vehicle{
public:
class Engine{
};
Engine* vehicle_engine;
};
但是它降低了代码的可读性。我更喜欢作文而不是内卷。区分以语言为特征的类类型和设计模式并不是那么容易。例如,Singleton
是否属于该类别?
分类在C++11中也是相关的,OOP的基本前提没有改变。答案的范围必须是有限的,因为您明确询问类类型,不过,我会将函数(包括lambdas)添加到列表中。
同样,现在枚举是强类型的(用enum class
关键字指定),它们可以说在万神殿中有自己的位置。
相关文章:
- 为什么在popback()操作之后,它仍然打印完整的矢量
- 在类定义之后定义一个私有方法
- 在循环C++中指定字符串之后,不会打印该字符串
- C++宏忽略之后的内容
- 要与"if constexpr"一起使用的编译时消息(在预处理器之后)
- strncpy之后的char数组的错误行为
- 计算十进制 c++ 之后的数字
- "x += x--"之后的 x 是什么?
- 类的前向声明之后的类成员函数定义,在类声明之前
- 为什么将双精度转换为 int 似乎在第 16 位数字之后将其四舍五入?
- 为我的 c++ 类介绍制作一个三角形分类器.我有几个问题
- 更改 C++ 中的组合分类变量
- execlp() 在 fork() 之后无法正常工作
- 我认为我的代码很好,但它在 cin a 之后停止并且没有进一步?
- 只有级联分类器会发出未定义的引用错误
- 如何在MISRA C++之后实施CRTP
- 在 OpenCV 的 namedWindow 之前或之后初始化 Tesseract
- 检测到堆损坏:在正常块 c++ 动态 2D 数组之后
- C++类在C++11之后的分类
- c++排序数组.我的分类在第一次传球时有效,但在那之后就不行了