網頁

C++ 速查手冊 V1.00 - 單元 11.2 - 無名命名空間




命名空間可以是無名的,也就是不帶任何識別字。


舉例如下


001 #include <iostream>
002
003 namespace {
004    class Demo {
005    public:
006       int a;
007       int b;
008
009       int do_something() {
010          return a + b;
011       }
012    };
013 }
014
015 int main() {
016    Demo d;
017    d.a = 55;
018    d.b = 66;
019    std::cout << d.do_something()
020              << std::endl;
021
022    return 0;
023 }
024  
025 /* Kaiching Chang 
026    u1102.cpp
027    2014-02 */

我們在無名命名空間裡頭定義 Demo 類別 (class)


003 namespace {
004    class Demo {
005    public:
006       int a;
007       int b;
008
009       int do_something() {
010          return a + b;
011       }
012    };
013 }

每個檔案只能有一個無名的命名空間,就直接使用裡頭的識別字


016 Demo d;

同樣的,每個命名空間也只能有一個無名的命名空間。

編譯執行,結果如下


g$ g++ u1102.cpp
$ ./a.out
121
$

continue ...

沒有留言:

張貼留言

0.留言請選擇註冊帳號, Google 或 OpenID 均可
1.歡迎留言交流,但不歡迎垃圾留言及廣告留言
2.文章相關問題歡迎提出,請減少情緒性留言
3.非文章相關內容,請到 G+ 社群 FB 社團提出
4.問作業之留言會被直接刪除
5.莫忘網路禮節
6.可使用部份HTML標記,如 <b> 、 <i> 、 <a>
7.站長保留刪除留言的權力