gpt4 book ai didi

c++ - 作为 std::vector 包装器的用户定义容器应该继承还是包含 std::vector?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:14:28 25 4
gpt4 key购买 nike

作为 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com