模板类分配运算符

时间:2019-02-06 21:55:00

标签: c++ class templates assignment-operator

我对名为“ DynamicArray”的模板类有问题。我唯一的问题是定义赋值运算符时。它给了我两个不同的错误

1)它给我的第一个错误是

DynamicArray&说“缺少类模板“ DynamicArray”的参数列表”

2)第二个错误是

DynamicArray :: operator =说“模板参数列表必须与参数列表匹配”

这是我的程序

DynamicArray.h

#pragma once
#include <iostream>

using namespace std;

template<typename T>
class DynamicArray
{
public:
    DynamicArray();
    DynamicArray(const DynamicArray &d);
    DynamicArray& operator=(const DynamicArray &d);
    ~DynamicArray();
};

template<typename T>
DynamicArray<T>::DynamicArray()
{

}

template<typename T>
DynamicArray<T>::DynamicArray(const DynamicArray &d)
{

}

template<typename T>
DynamicArray& DynamicArray<T>::operator=(const DynamicArray &d)
{

}

template<typename T>
DynamicArray<T>::~DynamicArray()
{

}

我看过多个示例,无法弄清楚为什么会有这个问题。

有人可以告诉我我在做什么错吗?

1 个答案:

答案 0 :(得分:0)

  1. 按照尼尔(Neil)的建议,将完整的模板放在头文件中,该链接指向Why can templates only be implemented in the header file?
  2. operator=的返回值应为DynamicArray<T>&