错误:在'&'之前的预期构造函数,析构函数或类型转换代币

时间:2014-03-25 23:33:42

标签: c++ templates assignment-operator

标题说这一切真的,我收到了这个错误,我只是不知道在&和& 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;

    }

1 个答案:

答案 0 :(得分:0)

从语法中遗漏了一对<T>

//assignment operator
template <class T>
indexList<T> &indexList<T>::operator=(const indexList &rhs)
{
    // ...
}

此外,此定义与所有模板函数一样,可能应在头文件中定义。