本文共 681 字,大约阅读时间需要 2 分钟。
定义内部类:
把一个类的定义写在另一个类的内部,则称里面的这个类为内部类。例如,Inner就是class AAA{ public: //第一个一个内部类 class Inner { public: char name[64]; };}
使用内部类:
在使用该内部类时,类名要使用全称AAA::Inner,例如int main(){ AAA::Inner a; strcpy(a.name,"Anxi");}
注意事项
内部类和外部类互相没有特权 它们不是朋友关系 它们不是父子关系 它们没有任何特殊关系 所以外部类无法自由访问内部类,内部类也无法自由访问内部类**内部类的访问限制
如果内部类被protected/private限制,则该类在外部不可见。(类名被完全隐藏)**内部类的分离式写法
也可以把内部的成员函数定义分离到*.cpp中实现。。。//////////AAA.cpp/////////AAA::Inner::Inner(){}void AAA::Inner::Test(){ printf("name:%s\n",name);}
为什么要用内部类?
既然内部类和普通类并无区别,那为什么要把它写在另一个类的内部呢? 原因: (1)避免名字冲突 (2)如果一个类只在模块内部使用,则可是实现类名隐藏 当项目越来越大,避免类名的冲突成为一个现实存在的问题。。。将一些只在模块内部使用的类,写成内部类注意:内部类还可以在定义内部类,没有层数限制,但一般就写两层
转载地址:http://pevzb.baihongyu.com/