限定名称,命名空间
来源:互联网 发布:windows redstone 4 编辑:程序博客网 时间:2024/05/21 08:30
假定有这样一种情况:有两个命名空间,分别是ns1和ns2,但是要使用ns1中的定义函数fun1和ns2中的定义函数fun2,但是问题在于在ns1和ns2两个命名空间内都定义了一个my_function 的函数(假定所有函数都不获取任何参数,忽略操作符重载)在这种情况下,以下语法是错误的:
作用域解析操作符::
using namespace ns1;using namespace ns2;
因为它会提供有冲突的my_function 定义。
所以可以采取一种方式,指出自己准备使用的命名空间ns1中的fun1和ns2中的fun2但是不准备使用命名空间的ns1和ns2中的其他任何东西,以下语句声明可以解决问题:
using ns1::fun1;using ns2::fun2;以下声明
using Name_Space::One_Name会使用Name_Space中名称One_Name进入可用状态,但是Name_Space中的其他名称不能 使用。
作用域解析操作符::
void Dig::advance(int hours_added,int minutes_added){...}在这种情况下,操作符::表示函数advance 是为Dig类定义的,和其他任何类中的同名函数没有关系,和上述的命名空间一样。
现在假定使用ns1中的定义的fun1但是只是使用一次或者少数的几次,在这种情况下,可以在函数名前面直接附加命名空间的名称以及作用域解析操作符ns1::fun1();
指定参数类型的时候,经常需要采用这种形式
int get_number(std::istream input_stream)...在函数get_number中参数input_stream 属于istream类型istream采用的是在std命名空间中的定义,在std命名空间内如果类型名称istream 是唯一需要的名称或者希望所有名称都采用std::前缀进行类似的限定,就不要使用using namespace std;
- 限定名称,命名空间
- php命名空间:非限定名称、限定名称、完全限定名称实例详解
- php命名空间:非限定名称、限定名称、完全限定名称实例详解
- as3中命名空间——命名空间名称限定符引用的一些注意的问题
- java枚举实现命名空间层级限定
- 未指定名称命名空间
- 找不到类型或命名空间名称MSXML2
- 找不到类型或命名空间名称“SQLDMO”
- 不存在类型或命名空间名称“Office ”
- 未找到类型或命名空间名称
- “SXMPDocOps”: 不是类或命名空间名称
- “Stock”: 不是类或命名空间名称
- WCF的三个名称/命名空间
- 更改C#项目的命名空间名称
- 未能找到类型或命名空间名称
- PHP命名空间的名称解析规则
- .Net框架下的命名准则--命名空间的名称
- AS的名称空间/命名空间 On Actionscript's Namespaces
- 头插入法反转单链表
- 用脑袋做测试
- 程序员的与众不同和平凡
- iphone视频聊天代码实现
- 文本框事件顺序
- 限定名称,命名空间
- jQuery1.2.1结构图
- 如何在网页HTML中嵌入QQ、MSN、旺旺、Gtalk快速对话框代码
- 用系统NSUserDefaults方法保存历史数据
- linux下php实现C/C++扩展编程
- 事务4个隔离级别
- Lcd调试流程
- 返回数据的完整路径
- 报数( Read . pas / c / cpp )