内部类是不是最好为私有的,像iterator在容器之中是不是就是私有的内部类呢?
内部类的私有和公有会对内部类的成员变量和函数有什么影响呢?
内部类是不是最好为私有的,像iterator在容器之中是不是就是私有的内部类呢?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 鸟类学 2016-04-14 16:17关注
比如说LIST 的内部类Node是作为类的内部结点封装一个前后指针,在LIST内做功能(如push_back,push_front)实现的基本数据类型使用,不需要与类外做交互,LIST只需要提供功能接口即可,所以私有封装Node最佳。
LIST 的内部类Iterator(相当于一个泛型的指针)提供外界来访问LIST的容器的元素,需要在类外的实体才能使用(list::iterator = l1.begin()),如果私有化类外无法实例,所以应该对外暴露出来。
LIST里的接口begin() end()在类内Iterator的作完节点指针调整后的iterator临时对象.作为内部类的iterator ,如果类外调用iterator模拟出来的指针功能,还要在iterator内部声明list为其友元类。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报