我是C ++的新手,我正在学习模板类和动态内存分配,所以如果这里有愚蠢的错误,我道歉。我无法确切地知道这段代码中的问题是什么,但我似乎无法让编译器给我除了以外的任何东西..
Undefined first referenced symbol in file indexList<timecard>::operator=(indexList<timecard> const&)/var/tmp//ccgqjCOv.o ld: fatal: Symbol referencing errors. No output written to a.out collect2: ld returned 1 exit status
template <class T>
indexList<T>& indexList<T>::operator=(const indexList<T> &other) const{
if(this != &other){
name = other.name;
ssn = other.ssn;
hours = other.hours;
payRate = other.payRate;
numOfDependents = other.numOfDependents;
unionMem = other.unionMem;
delete list;
list = new T[maxSize];
*list = *(other.list);
}//end if
return *this;
}
答案 0 :(得分:0)
在const
之前的最终{
限定符不属于那里。
我不确定为什么会收到此特定错误,因为该函数实际上已定义,但所有作业name =
等都是非法的,因为this
为const
。但是,复制赋值运算符是一个特殊的函数,编译器真的不希望看到这个签名。