namespace的用法
2015-04-07 14:06
423 查看
1. C++中采用的是单一的全局变量命名空间
2.用户于是可以通过三种方法来访问这一名字空间里的符号:将名字空间中的所有符号全部引入到某一用户空间;将部分符号引入到某一用户空间;或通过修饰符显式地一次性使用某个符号
3.例子
namespace sdm { const double book_version = 2.0; class handle { ... }; handle& gethandle();}]
void f1(){ using namespace sdm; (使得sdm中的所有符号不用加修饰符就可以使用) cout << book_version;(解释为sdm::book_version) ... handle h = gethandle();(handle解释为sdm::handle,gethandle解释为sdm::gethandle) ...}void f2(){ using sdm::book_version; (使得仅book_version不用加修饰符就可以使用) cout << book_version;(解释为sdm::book_version) ... handle h = gethandle();(错误! handle和gethandle都没有引入到本空间) ...}void f3(){ cout << sdm::book_version; (使得book_version在本语句有效) ...double d = book_version;(错误! book_version不在本空间) handle h = gethandle();(错误! handle和gethandle都没有引入到本空间) ...}(有些名字空间没有名字。这种没命名的名字空间一般用于限制名字空间内部元素的可见性)
2.用户于是可以通过三种方法来访问这一名字空间里的符号:将名字空间中的所有符号全部引入到某一用户空间;将部分符号引入到某一用户空间;或通过修饰符显式地一次性使用某个符号
3.例子
namespace sdm { const double book_version = 2.0; class handle { ... }; handle& gethandle();}]
void f1(){ using namespace sdm; (使得sdm中的所有符号不用加修饰符就可以使用) cout << book_version;(解释为sdm::book_version) ... handle h = gethandle();(handle解释为sdm::handle,gethandle解释为sdm::gethandle) ...}void f2(){ using sdm::book_version; (使得仅book_version不用加修饰符就可以使用) cout << book_version;(解释为sdm::book_version) ... handle h = gethandle();(错误! handle和gethandle都没有引入到本空间) ...}void f3(){ cout << sdm::book_version; (使得book_version在本语句有效) ...double d = book_version;(错误! book_version不在本空间) handle h = gethandle();(错误! handle和gethandle都没有引入到本空间) ...}(有些名字空间没有名字。这种没命名的名字空间一般用于限制名字空间内部元素的可见性)
相关文章推荐
- PHP命名空间 namespace 及导入 use 的用法
- php namespace 用法和autoload机制
- php中namespace和use的用法
- using namespace std 的用法
- namespace的用法
- namespace的用法
- namespace的用法
- C++中的namespace用法
- namespace及use的用法
- C++学习之namespace的用法
- struts中package元素的namespace属性用法
- Struts2中namespace的用法
- Struts2中namespace的用法
- PHP命令空间namespace及use的用法小结
- namespace的用法
- thinkphp3.2 namespace及use用法
- namespace的用法
- PHP命名空间 namespace 及导入 use 的用法
- NameSpace用法
- C++ namespace的用法