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