① 复合类
利用在node类中声明友元类的方法,让list node类与list 类的成员都能访问list node类的私有数据成员。
class list;
class listnode{
friend class list;
private:
int data;
listnode *link;
};
class list {
public:
....
private:
listnode *first,*currend;
};
② 嵌套类
在list类定义的内部对list node类进行定义。由于把list node类定义在list类的private部分,这就保证了list类外部的对象和函数不能直接接触到list node类的对象。但list node类的数据成员放在它的public部分,是的list node类和list 类的成员都能直接访问它们。
class list{
public: //链表操作
private:
class listnode{
public:
int data;
listnode * link;
}
listnode *first,*current;
};