标题说这一切真的,我收到了这个错误,我只是不知道在&和& amp;让它有用吗?
我只使用了我认为必要的标题和cpp文件的部分
头:
#include <iostream>
using namespace std;
#ifndef INDEXLIST_H
#define INDEXLIST_H
template <class T>
class indexList
{
public:
//constuctor, default
//Descriptions: Initializes numberOfElement to 0
// Initializes maxSize to 100
//Parameters: none
//Return: none
indexList(int size = 10);
//copy constructor
indexList(const indexList &rhs);
//destructor
~indexList();
//assignment operator
indexList &operator=(const indexList &rhs);
CPP:
//assignment operator
template <class T>
// error occurs on the line below
indexList &indexList::operator=(const indexList &rhs)
{
if(*this != rhs)
{
delete [] list;
numberOfElement = rhs.numberOfElement;
maxSize = rhs.maxSize;
list = new T[maxSize];
for(int i = 0; i < numberOfElements; i++)
{
list[i] = rhs.list[i];
}
return *this;
}
答案 0 :(得分:0)
从语法中遗漏了一对<T>
:
//assignment operator
template <class T>
indexList<T> &indexList<T>::operator=(const indexList &rhs)
{
// ...
}
此外,此定义与所有模板函数一样,可能应在头文件中定义。