模板类赋值运算符

Template class assignment operator

本文关键字:赋值运算符      更新时间:2023-10-16

我对一个名为"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. 按照 Neil 通过链接将完整的模板放在头文件中,为什么模板只能在头文件中实现?。
  2. operator=的返回值应DynamicArray<T>&