Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/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
C++ 在模板类中使用友元运算符重载函数,错误为未定义引用_C++_Templates_Overloading_Friend - Fatal编程技术网

C++ 在模板类中使用友元运算符重载函数,错误为未定义引用

C++ 在模板类中使用友元运算符重载函数,错误为未定义引用,c++,templates,overloading,friend,C++,Templates,Overloading,Friend,这是我的代码和声明,我不知道如何用模板类正确设置友元函数。有人能告诉我我做错了什么,为什么吗 谢谢 private: int size; T* buff; friend Vector<T> operator * (const int n, const Vector<T> & v); friend Vector<T> operator + (const int n, const Vector<T>

这是我的代码和声明,我不知道如何用模板类正确设置友元函数。有人能告诉我我做错了什么,为什么吗

谢谢


private:
    int size;   
    T* buff; 
    friend Vector<T> operator * (const int n, const Vector<T> & v);

    friend Vector<T> operator + (const int n, const Vector<T> & v);


template<typename T>
Vector<T> operator * (const int n, const Vector<T> & v){
    Vector<T> vec(v.size);
    vec.size = v.size;
    for(int i = 0;i<vec.size;i++){
        vec.buff[i] = v.buff[i]*n;
    }
}
template<typename T> 
Vector<T> operator+ (const int n, const Vector<T> & v){
    Vector<T> vec(v.size);
    vec.size = v.size;
    for(int i = 0;i<vec.size;i++){
        vec.buff[i] = v.buff[i]*n;
    }
}


私人:
整数大小;
T*buff;
友元向量运算符*(常数int n,常数向量&v);
友元向量运算符+(常数int n,常数向量&v);
模板
向量运算符*(常数整数n,常数向量&v){
向量向量向量(v.size);
向量大小=向量大小;

对于(int i=0;i请添加一个最小的可复制代码Undefined reference,未定义的引用通常意味着您与重新阅读有冲突,如果这回答了您的问题,我们将作为副本关闭。如果没有,请。