c++ - std::vector 类与非成员函数(连同 typedef)

标签 c++ class oop vector

<分区>

我在我的项目中有以下设计困境:
我将我设计的类的对象存储在 std::vector 中. 我想为这种 vector 添加一些方法 ( std::vector<MyClass> )。 我正在考虑将这个 vector 封装在另一个类中并添加我需要的这些方法,当然还提供了 std::vector 的所有功能。我用的。这是一个明智的想法吗?或者我应该只使用非成员函数,也许是 typedef为了我自己方便?

最佳答案

在这种情况下,非成员函数是正确的。请参阅 Scott Meyer 关于该主题的文章 How Non-Member Functions Improve Encapsulation .

此外,请务必使用 typedef std::vector<MyClass> someTypeName;你不想要 std::vector<MyClass>散落在你的代码中。您想要的是 类型,而不是它的实现方式。如果您不得不更改实现以使用不同的容器,您会很高兴您使用了 typedef。

预计到达时间:在评论中我想起了 using及其优于typedef .

using someTypeName = std::vector<MyClass>; 

关于c++ - std::vector 类与非成员函数(连同 typedef),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32052297/

相关文章:

c++ - 如何在 Linux 中获取 USB 驱动器标签?

javascript - 选择具有一个类而不是其他类的项目 jquery javascript

php - 检查同一个类中是否存在方法

JavaScript 构造函数未设置正确的值

java - 域对象和 Controller 类

c++ - 在编译时创建一个数组

c++ - 是否可以将其重写为一个类轮?

c++ - cmake -g 标志不生成 'DWARF with dSym file' 调试信息

oop - 内聚力和耦合之间的区别

javascript - TypeScript 中 c# 类虚拟成员的等价物