public:
Stack<T>&operator=(const Stack<int>& rlist);
private:
int *top;
template<class T>
Stack<T>& Stack<int>::operator=(const Stack<int>& rlist)
{
if(this==&rlist)
return *this;
makeEmpty();
deepCopy(rlist);
return *this;
}
我收到的错误是error C2244:'Stack<T>::operator=': unable to match function definition to an existing declaration
并且不知道在哪里修复....
答案 0 :(得分:2)
出于某些奇怪的原因,您指定了<int>
。所有这些都应该是<T>
。
Stack<T>&operator=(const Stack<int>& rlist);
// ^^^^^
Stack<T>& Stack<int>::operator=(const Stack<int>& rlist)
// ^^^^^ ^^^^^
除非你实际上试图专注于T=int
(如果是这样,那么你的语法有缺陷),但是基于赋值运算符的实现,我不认为这是你的&# #39;重新尝试。