你不应继承性病:载体
好吧,这确实很难招供,但我现在确实有很大的诱惑要继承。std::vector
.
我需要大约10个定制的矢量算法,我想让他们成为向量的直接成员。但自然我也希望std::vector
作为一个守法的公民,我的第一个想法是std::vector
成员MyVector
班级,等级。但是,我必须手动重新提供所有STD:VINVERV的接口。打字太多了。接下来,我考虑了私有继承,因此,与其重新提供方法,不如编写一堆using std::vector::member
在公共部门。这也很乏味。
我在这里,我真的认为我可以直接从std::vector
,但在文档中提供一个警告,说明不应以多形性方式使用该类。我认为大多数开发人员都有足够的能力来理解,无论如何都不应该使用这种方法。
我的决定完全站不住脚吗?如果是,为什么?你能提供一个有额外成员的替代方案吗?其实成员,但不会涉及重新键入所有向量的接口?我很怀疑,但如果你能的话,我会很高兴的。
另外,除了一些白痴可以写一些类似的东西
std::vector<int>* p = new MyVector
还有其他的吗写实使用MyVector会有危险吗?通过说现实,我放弃了一些东西,比如想象一个函数,它把一个指向向量的指针.
我已经陈述过我的案子了。我犯了罪。现在该由你来原谅我了:)