简短问题:
是否有为什么C ++ STL实现使用一个原因vector_base结构/类(到手柄资源和分配器),为基类的std::vector,而不是使用组合物?
较长版本:
在提高我对C ++的了解的“任务”中,我一直在尝试重新实现一个Vector大多数是std::合规的类。我想我已经足够了解为什么使用分配器明智,为什么您实际上希望将所有内存处理放在单独的类/结构(RAII等)中,但我看不到为什么我们std::vector要从中继承类,而不是将其作为私人成员。
例如,LLVM和gcc都使用继承。另一方面,我发现构造函数和赋值运算符(尤其是move-types)使用合成更容易处理。
我只是公开我对语言的肤浅知识吗?
举例来说,我搜索了一本教科书,发现Stroustroup的书与他的2013年的“ C ++编程语言,第四版”对标准的“模拟重新实现”有不同的版本(只是让我更加困惑!)。使用构图及其2014年的“编程:原理与实践,第二版”。使用继承!
任何人都可以帮助我阐明一些想法吗?
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |