关于c ++:继承自std :: vector


Inheriting from std::vector

这里有很多答案说不要从std::vector继承,类似于这个问题。我理解原因并同意他们的看法。但是在这里,第4.4.1.2节bjarne stroustrup自己继承了std::vector来添加范围检查。

这是一个特殊的情况,或者只是在那种情况下可以做的事情,或者是他真正不应该做的事情:p


我认为这个答案完全回答了你的问题。

std::vector继承是不可能的,它可能非常有限(由于没有虚拟析构函数),对其他人来说非常混乱,并且通过组合进行扩展比继承更好/更容易/更易于维护。

也许斯特劳斯特鲁普只是想表明这是可行的,但并不一定意味着他建议这样做。