内部内:

#include<iostream>usingnamespacestd;classCPeople{public:inta;CPeople(inta){this->a=a;}private:classKayer{public:inta;CPeople*cp;Kayer(CPeople*p):cp(p){a=12;}voidfun(){cout<<cp->a<<endl;}};public:Kayer*kayer=newKayer(this);};intmain(){CPeoplec(13);cout<<"CPeoplea:"<<c.a<<endl;c.kayer->fun();cout<<"======================================="<<endl;c.a=17;cout<<"CPeoplea:"<<c.a<<endl;c.kayer->fun();return0;}

结果:

解析 :

① 内部类也属于嵌套类。例如 :Kayer就是CPeople的内部类

② 内部类(Kayer)访问外部类(CPeople)需要使用引用/指针。本篇使用指针 Kayer* kayer = new Kayer(this); 这样可以保证数据的同步。