C++ 速查手冊

11.2 - 無名命名空間

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

舉例如下

#include <iostream>
  
namespace {
    class Demo {
    public:
        int a;
        int b;
        
        int do_something() {
            return a + b;
        }
    };
}

int main() {
    Demo d;
    d.a = 55;
    d.b = 66;
    std::cout << d.do_something() << std::endl;
    
    return 0;
}

/* 《程式語言教學誌》的範例程式
   http://kaiching.org/
   檔名:u1102.cpp
   功能:示範 C++ 的命名空間
   作者:張凱慶*/

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

namespace {
    class Demo {
    public:
        int a;
        int b;
        
        int do_something() {
            return a + b;
        }
    };
}

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

Demo d;

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

編譯執行,結果如下

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

相關教學影片

上一頁 11.1 - 巢狀命名空間
回 C++ 速查手冊首頁
下一頁 11.3 - inline 命名空間
回 C++ 教材
回程式語言教材首頁