新手:链表例题很多不懂,求教
小第学习中看一题,很多不明白,望大虾们帮哈
#ifndef LISTND_H
#define LISTND_H
template <class NODETYPE> class List; //这种写法不懂,书上叫类模板介绍很少
template <class NODETYPE>
class ListNode
{
friend class List <NODETYPE> ; //这句也不明白,定义个友元类?
public:
ListNode(const NODETYPE &);
NODETYPE getData() const;//return data in the node
private:
NODETYPE data;
ListNode <NODETYPE> *nextPtr; //这句写法不解,
};
//constructor
template <class NODETYPE>
ListNode <NODETYPE> ::ListNode(const NODETYPE &info)
:data(info), nextPtr(0){}
//return a copy of the data in the node
template <class NODETYPE>
NODETYPE ListNode <NODETYPE> ::getData() const {return data;}
#endif
整个看不懂,我知道很多基地,但是看前面后还是不理解,大虾帮解释下,谢谢
[解决办法]
还没学模板就别看模板的东西。
去找本C++ Primer,先认真学了模板再说。
[解决办法]
1、template <class NODETYPE> class List;//这种写法不懂,书上叫类模板介绍很少
就是预定义一下,下面要用到,不然可能找不到。
2、friend class List <NODETYPE> ; //这句也不明白,定义个友元类?
意思就是List类可直接操作Node类的私有数据。
3、ListNode <NODETYPE> *nextPtr; //这句写法不解,
这是模版类的写法,NODETYPE定义了类型。
其实楼上说的对,先看c++primer吧
[解决办法]
建议按照ls的ls的方法学
要不,会受伤很重
[解决办法]
3或4随便。网上买可以7.5折,不贵了,此书绝对物超所值。