#include<iostream>
#include<string.h>
using namespace std;
class CNode;
class CList
{
private:
CNode *m_pNode;
public:
CList();
~CList();
void OutputNode();
};
class CNode
{
friend void CList::OutputNode(); //声明友元函数
private:
char m_Name[30];
void OutputName()
{
cout<<m_Name<<endl;
}
public:
void SetName(char *name)
{
if(name!=NULL)
{
strcpy(m_Name,name);
}
}
CNode()
{
memset(m_Name,0,30); //初始化数据成员m_Name
}
};
void CList::OutputNode() //CList类的OutputNode成员函数的实现
{
char name[30]="wangjunchao";
m_pNode->SetName(name);
m_pNode->OutputName();
}
//如果不使用构造函数和析构函数,CList类中的CNode类指针就不会引用CNode类中的成员
//因为CNode类指针是指向NULL的,只有给他赋予空间后才能使用
CList::CList()
{
m_pNode=new CNode(); //构造m_pNode对象
}
CList::~CList()
{
delete m_pNode; //释放m_pNode对象
m_pNode=NULL;
}
int main()
{
CList list;
list.OutputNode();
return 0;
}