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++ - PCL-错误 C2039 : 'PointType' : is not a member of 'boost::shared_ptr<T>'

java - Bat 文件设置类路径

c++ - 类的静态函数和类的构造函数是什么关系?

java - 读取具有多个不同类的 JSON 作为响应

php - 如何验证数据映射器模式中的唯一性?

java - 如何使用单个方法迭代不同对象的 ArrayLists?

c++ - 如何将右值 std::vector 传递给函数?

c++ - 抑制单行的弃用警告

c++ - 如何在 C++ 中安全地调整大 vector 的大小

c# - 处理多个 List<Class> 的通用方法