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++ - Typedefs、(二进制)代码复制和目标文件

javascript - 使用 Javascript 创建父类(super class)(继承)

javascript - 构造函数中的订阅

c++ - 另一个类中的自定义类实例数组崩溃编译器

c++ - 未定义的子类引用

c++ - 正确设置基类和派生类之间的函数返回

c++ - 并行计算,其中只有最快的解决方案 "wins"C++

c++ - DLL 中全局变量的使用限制(适用于 Windows)

c++ - 如何在不使用任何 SSE 指令的情况下设置 __m128i?

c++ - 如何将概念应用于成员变量