我正在尝试继承 STL 向量类来自己创建一个新类。它将使用向量的基本属性,但我将添加一些新函数,如求和或除法。这里的问题是我正在尝试为不同类型实现该类。如何同时使用继承和模板?
以下是我需要帮助的班级机构。
//template <class T>
?
class NewVector<T> : public vector<T>{
//some constructors
};
是的。继承 STL 不是一个好主意。我知道这一点。但是可以说我正在使用这种继承。
我在这里面临的问题是构建构造函数。
我像这样在 main 中调用构造函数,
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);
.....