內部類是不是最好為私有的,像iterator在容器之中是不是就是私有的內部類呢?
內部類的私有和公有會對內部類的成員變量和函數有什麼影響呢?
比如說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為其友元類。