头文件:practice2.h
#ifndef PRACTICE2_H_INCLUDED #define PRACTICE2_H_INCLUDED #include<iostream> class ThreeLetterList { private: class ThreeLetterNode { public: 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=new ThreeLetterNode(); f->data[0]='c'; f->data[1]='a'; f->data[2]='t'; f->link=0; first->link=f; } void ThreeLetterList::show() { std::cout<<first->data[0]<<first->data[1]<<first->data[2]<<std::endl; std::cout<<first->link->data[0] <<first->link->data[1] <<first->link->data[2] <<std::endl; } #endif // PRACTICE2_H_INCLUDED
practice.cpp文件
#include <iostream> #include "practice2.h" using namespace std; class List; class Node//节点 { friend class List;//申明成友元类 private: int data; Node *link; //指向下一个节点的指针 }; class List { public: void test(); void show(); private: Node *first;//指向第一个节点的指针 } ; void List::test() { Node *f=new Node(); f->data=44; f->link=0; first=f; f=new Node(); f->data=72; f->link=0; first->link=f; f=new Node(); f->data=210; f->link=0; first->link->link=f; } void List::show() { cout<<first->data<<endl <<first->link->data<<endl <<first->link->link->data<<endl; } int main() { List a; a.test();//创建了三个节点 a.show(); cout<<"O"<<endl; ThreeLetterList l; l.test(); l.show(); return 0; }