Оператор присваивания шаблона - PullRequest
0 голосов
/ 07 февраля 2019

У меня проблема с шаблоном класса, который я назвал "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 голосов
/ 07 февраля 2019
  1. Поместите полный шаблон в файл заголовка, как предложил Нил, по ссылке на Почему шаблоны могут быть реализованы только в файле заголовка? .
  2. Возвращаемое значение от operator= должно быть DynamicArray<T>&
...