2010-10-26 49 views
4

$ 3.5 - 「此外,成員 函數,靜態數據成員,類或 枚舉類範圍的有 外部鏈接,如果 類的名稱有外部鏈接」連鎖類名

關於'if the name of the class has external linkage'是什麼意思的任何輸入?

與名稱空間範圍中定義的類相比,是否在'本地類'(可能沒有任何鏈接)上提示,以及使用靜態說明符(具有內部鏈接???)定義的名稱空間範圍類?

回答

3

本地類(但不一定是嵌套類)沒有鏈接。一個類不能用靜態指定符來定義。因此,這等價地可以陳述如下:

$ 3.5 - 「另外,成員函數,靜態數據成員,類或類範圍的枚舉具有外部鏈接,除非包含的類是本地類或直接或間接在本地類中嵌套的類「。

+0

'typedef struct {} A;''在命名空間範圍內。它有什麼聯繫? – Chubsdad 2010-10-26 09:01:44

+0

@Chubsdad:外部鏈接。 3.5/4:「名稱空間範圍的名稱具有外部鏈接,如果它是...的命名類的名稱(第9章),或者*類型定義聲明中定義的未命名類,其中類*具有typedef名稱爲了聯繫的目的*(7.1.3)「 – usta 2010-10-26 09:11:47

+0

有趣.... – Chubsdad 2010-10-26 10:11:58