一、示例
main.cpp
#include <iostream>
#include "ThreeLetterList.h"
using namespace std;
int main()
{
cout << "链表基本操作_02_嵌套类" << endl;
ThreeLetterList L;
L.Test();
L.Show();
return 0;
}
ThreeLetterList.h
# ifndef THREELETTERLIST_H
# define THREELETTERLIST_H
# include <iostream>
using namespace std;
class ThreeLetterList//链表
{
private:
/**嵌套类:外面的类可以直接操作里面类的私有属性*/
class ThreeLetterNode//节点
{
public://此处应为private。作为嵌套类可改为public,不违反C++的封装原则
char data[3];//数据域:节点里的数据
ThreeLetterNode * link;//链接域:指向下一个节点的指针
};
ThreeLetterNode * first;//指向第一个节点的指针
public:
void Test();
void Show();
};
void ThreeLetterList::Test()
{
ThreeLetterNode * F = new ThreeLetterNode();//创建一个节点
F->data[0] = 'B';
F->data[1] = 'A';
F->data[2] = 'T';
F->link = 0;
first = F;//将F赋值给第一个(first节点)节点
F = new ThreeLetterNode();//创建一个节点
F->data[0] = 'C';
F->data[1] = 'A';
F->data[2] = 'T';
F->link = 0;
first->link = F;
F = new ThreeLetterNode();//创建一个节点
F->data[0] = 'D';
F->data[1] = 'A';
F->data[2] = 'T';
F->link = 0;
first->link->link = F;
}
void ThreeLetterList::Show()
{
cout<<first->data[0]<<first->data[1]<<first->data[2]<<endl;
cout<<first->link->data[0]<<first->link->data[1]<<first->link->data[2]<<endl;
cout<<first->link->link->data[0]<<first->link->link->data[1]<<first->link->link->data[2]<<endl;
}
# endif // THREELETTERLIST_H
输出结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200414214616746.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1hfS2luZ19R,size_16,color_FFFFFF,t_70)