用友元函数
友元函数会破坏封装性,C++能不用就尽量不用
#include <iostream>
class CLink;
class Node
{
public:
Node(int val)
{
mdata=val;
pnext=NULL;
}
//不用写析构函数 因为头结点是在栈上开辟的
//不需要手动去释放 所以不写析构函数
private:
int mdata;
Node* pnext;
friend class CLink;//友元关系//单向性
};
/*
构造函数的初始化列表
*/
class CLink
{
public:
CLink() :head(0){}
void InsertHead(int val)
{
Node* pnewnode=new Node(val);
pnewnode->pnext=head.pnext;
head.pnext=pnewnode;
}
void Show()
{
Node* pCur=head.pnext;
while(pCur!=NULL)
{
std::cout<<pCur->mdata<<" ";
pCur=pCur->pnext;
}
std::cout<<std::endl;
}
~CLink()
{
Node* pCur=head.pnext;
Node* pBack=pCur;
while(pCur!=NULL)
{
pBack=pCur->pnext;
delete pCur;
pCur=pBack;
}
head.pnext=NULL;
}
Node* Find(int val)
{
Node* pCur=head.pnext;
while(pCur->pnext!=NULL)
{
if(pCur->mdata==va