我想继承STL向量类来自己创建一个新类。它将使用矢量的基本属性,但我会添加一些新的功能,如总和或除法。这里的问题是我试图为不同类型实现该类。我怎样才能同时使用继承和模板?继承不同类型的向量类
下面是我的班级机构,我需要一些帮助。
是的。继承STL并不是一个好主意。我意识到这一点。但让我们说我正在使用这种继承。
我在这里面临的问题是建设构造函数。
我打电话主这样的构造,
NewVector<int> v1(3);
但问题是,像STL向量做,我不能创建此V1载体。当我尝试调试时获取0的大小和0的容量。我将如何编辑构造函数的大小和容量?我试图做到这些,但无法管理。
template <class T>
class NewVector : public vector<T>{
public:
NewVector(T n){
const ArithmeticVector<T> &v1(n);
cout<<v1.size()<<endl;
};
//some constructors
};
我看到v1矢量0的大小,但我想看到它3,因为我提到。一点帮助会很好。
这里是主文件。我知道我需要写一些构造函数,但他们需要兼顾int和double,并且我将如何告诉我的课程来完成它们?
using namespace std;
int main() {
NewVector<int> v1(3); // creating some objects
NewVector<int> v2(3); // vector elements are assigned randomly from 0 to 10
NewVector<double> v3(5);
NewVector<double> v4(5);
.....
标准容器并不意味着从 –
派生如果您想为矢量定义新的函数,则为矢量定义新的函数。这不需要继承。 – Pubby
是否有任何方法可以做到这一点?我需要继承向量类。写我自己的矢量类一定是不可能的。 – erenkabakci