C++ 速查手冊
11.1 - 巢狀命名空間
命名空間可以是巢狀的,也就是命名空間裡可以定義其他的命名空間。
舉例如下
#include <iostream>
namespace demo {
namespace demo2 {
class Demo {
public:
int a;
int b;
int do_something() {
return a + b;
}
};
}
}
int main() {
demo::demo2::Demo d;
d.a = 33;
d.b = 44;
std::cout << d.do_something() << std::endl;
return 0;
}
/* 《程式語言教學誌》的範例程式
http://kaiching.org/
檔名:u1101.cpp
功能:示範 C++ 的命名空間
作者:張凱慶*/
命名空間 demo2 定義在 demo 裡
namespace demo {
namespace demo2 {
class Demo {
public:
int a;
int b;
int do_something() {
return a + b;
}
};
}
}
因此使用 demo2 中定義的識別字 (identifier) ,需要標明命名空間的次序
demo::demo2::Demo d;
編譯執行,結果如下
$ g++ u1101.cpp |
$ ./a.out |
77 |
$ |
相關教學影片