这里有很多答案说不要从 std::vector 等继承,例如这个问题。我理解其中的原因并同意他们的看法。但是在这里第 4.4.1.2 节 Bjarne Stroustrup 自己继承了 std::vector 以添加范围检查。
这是一个特例,或者只是在那种情况下可以接受的事情,或者他真的不应该做的事情:P
我认为这个答案完美地回答了你的问题。
从 继承并非不可能std::vector
,它可能会非常有限(由于没有虚拟析构函数),对其他人来说相当混乱,并且通过组合扩展无论如何都会比继承更好/更容易/更易于维护。
也许 Stroustrup 只是想表明它是可行的,但不一定暗示他建议这样做。