在这里有很多答案,说不从std :: vector继承,如this question。我了解原因并同意他们。然而在here第4.4.1.2节Bjarne Stroustrup自己从std :: vector继承来添加范围检查。继承std :: vector
那是那是在这方面或某事,他真的不应该做的不错的特殊情况,或只是一些:P
在这里有很多答案,说不从std :: vector继承,如this question。我了解原因并同意他们。然而在here第4.4.1.2节Bjarne Stroustrup自己从std :: vector继承来添加范围检查。继承std :: vector
那是那是在这方面或某事,他真的不应该做的不错的特殊情况,或只是一些:P
我觉得this answer完全回答你的问题。
从std::vector
继承它不是不可能的,它可能会非常有限(由于没有虚拟析构函数),对其他人来说相当混乱,并且通过构造扩展会比继承更好/更容易/更易维护。
也许Stroustrup只是想表明它是可行的,但不一定暗示他建议。
这是有道理的,你根本不可能使用矢量多态的无论如何.. – jcoder 2013-04-24 09:30:31
你的意思是[这个答案](http://stackoverflow.com/a/7302165/743214),不是吗? – 2013-04-24 09:34:47
@jcoder还指出,通过使用私有继承,您可以实现很多,而没有大部分陷阱。 – juanchopanza 2013-04-24 09:35:52
Bjarne Stroustrup是一个特例。 – Chowlett 2013-04-24 09:25:05
我认为这是展示他所描述的原理的最简单方式,而不必设置复杂的示例类。 – 2013-04-24 09:27:44