作为 std::vector 包装器的用户定义容器应该继承还是包含 std::vector?
我有一个应该是容器的类。我看到两个选项:
1) 从vector继承 2) 有一个私有(private)成员 vector 并覆盖所有 vector 函数以使我的容器充当 vector
我不确定这是否只是风格的问题,还是从根本上来说更好 比另一个?
我想添加的额外功能很小,这里的数据成员和函数很少 在那里。大多数情况下,处理 vector 中的数据将是方便的功能。
最佳答案
首先,STL容器不应该被继承。他们甚至没有虚拟析构函数。
其次,选择组合/聚合而不是继承总是更可取的,因为这是一种耦合度较低的技术,对代码的限制/要求较少。
参见 this answer有关详细信息,这个问题已被多次提出。
关于c++ - 作为 std::vector 包装器的用户定义容器应该继承还是包含 std::vector?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21151785/