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 ...

沒有留言: