- 论坛徽章:
- 0
|
代码如下:
template <class Type>
class IteratorDouList
{
private:
DouNode<Type>* cur;
public:
IteratorDouList():cur(NULL){};
IteratorDouList(DouNode<Type>* curNode):cur(curNode){};
//friend Type operator++(IteratorDouList<Type>& itDouList){return itDouList.GetCur()->GetData();};
friend Type operator++(IteratorDouList<Type>& itDouList);
void operator=(DouNode<Type>& pointNode);
DouNode<Type>* GetCur();
};
template <class Type>
Type operator++(IteratorDouList<Type>& itDouList)
{
return ......
}
上述代码在用的时候,如:
IteratorDouList<int> test;
.....
++test;
...
报错如下:
错误 1 error LNK2019: 无法解析的外部符号 "int __cdecl operator++(class IteratorDouList<int> &,int)" (??E@YAHAAV?$IteratorDouList@H@@H@Z),该符号在函数 _main 中被引用 Test_Mian.obj
错误 2 fatal error LNK1120: 1 个无法解析的外部命令 H:\C++\Template_class\Debug\Template_class.exe
但是如果把“++”的实现移植到类的内部(如注释掉的部分)就对了。
新手,不理解,请大家多指点。 |
|