Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 模板类T_C++_Template Classes - Fatal编程技术网

C++ 模板类T

C++ 模板类T,c++,template-classes,C++,Template Classes,如果我有 template<class T> class Vector public: Vector(const Vector& bla); )); //下面是同一个.h文件中但在类之外的代码 Vector(); Vector(int size, T value = T()) {} Vector(const Vector& vec){} ~Vector(){} T at(int index

如果我有

template<class T> class Vector

public:
   Vector(const Vector& bla);
)); //下面是同一个.h文件中但在类之外的代码

   Vector();

    Vector(int size, T value = T())
            {}

    Vector(const Vector& vec){}

    ~Vector(){}

    T at(int index) const{}

    void set_value_at(int index, T elem) const{}

如果您试图实现
Vector()
,您可以这样做:

template<class T> Vector<T>::Vector(const Vector<T>& bla)
{
    ...
}
Vector<SomeTypeHere> vec1;
Vector<SomeTypeHere> vec2(vec1);

如果一切都做对了,
vectorv(args)
应该自动调用类似构造函数的函数。要使用其他功能,请执行以下操作:

v.myFunc();
Vector<type>::mystaticfunc();
静态功能:

v.myFunc();
Vector<type>::mystaticfunc();
Vector::mystaticfunc();

请讲清楚一点。显示整个
.h
文件,以及您尝试使用它的位置/方式。如果我在此函数中使用它:templateVector::Vector(int size,T value=T()),我会得到以下错误:错误:为“Vector::Vector(int,T)”的参数2指定的默认参数默认参数值只能在声明中指定,不能在实现中指定,例如:
模板向量{public:Vector(int-size,T-value=T());}
模板向量::向量(int-size,T-value){…}
,除非它们是内联在一起的(这在使用模板时最常见),例如:
模板向量{public:Vector(int-size,T-value=T()){…}