程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> c++-內部類是不是最好為私有的,像iterator在容器之中是不是就是私有的內部類呢?

c++-內部類是不是最好為私有的,像iterator在容器之中是不是就是私有的內部類呢?

編輯:編程解疑
內部類是不是最好為私有的,像iterator在容器之中是不是就是私有的內部類呢?

內部類是不是最好為私有的,像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為其友元類。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved