2011-10-24 45 views

回答

5

本地類和嵌套類是不同的野獸。

A 嵌套類是在另一個類的範圍內聲明的類。

A 本地類在函數定義中聲明。

內部類是一個非標準的C++術語,所以我不知道如何定義它。


嵌套類:

IBM文檔作爲一個很好的文檔here
總結:

  • 嵌套類的名稱是局部的它包圍類。除非使用顯式指針,引用或對象名稱,否則嵌套類中的聲明只能使用可見構造,包括類型名稱,靜態成員和封閉類和全局變量中的枚舉器。
  • 嵌套類的成員函數遵循常規訪問規則,並且對其封閉類的成員沒有特殊的訪問權限。封閉類的成員函數有一個嵌套類的成員

局部類沒有特殊訪問權限:
here的這個回答文檔與本地類相關聯的微妙點。

+1

C++中沒有內部類。這是一個Java概念。 –

2

引用的C++ 11(N3290)草案:

9.7嵌套類聲明 [class.nest]

1類可以另一個類中聲明。在另一個類中聲明的類稱爲嵌套類 。

9.8本地類聲明 [class.local]

1類可以函數定義內聲明;這樣的班級被稱爲本地班級。

在C++標準中沒有指定內部類的概念。

0

內部類捕獲封閉類的this引用。內部類實例的層次結構形成一個樹結構。這對Java來說是獨一無二的。