命名空间(error:call of overloaded ‘xxx()‘ is ambiguous)

命名空间的存在就是为了防止作用域的冲突,如果在相同的作用域内有相同的名称的变量就会有错误。
命名空间的声明:
    namespace 命名空间名
    {
        //各种变量
    }
命名空间的使用
    1.显示调用
    eg:std::cout
    
    2.using 声明:告诉编译器下面这个cout是属于std这个命名空间的
    eg: using std::cout;
    
    3.using 指示:把命名空间中所有变量都暴露出来
    eg:using namespace std;
    
    上面这三种方式中显示调用是最稳妥的方式,不会引起冲突,但是using声明和using指示都有可能造成冲突
    
使用示例:
1.普通的调用

#include <iostream>
using namespace std;//最常见的命名空间,cout,cin,cerr,endl都在这个命名空间中
namespace china
{
	int a=5;
	int b;
	void foo()
	{
		cout<<"This is my namespace china"<<endl;
		cout<<"a: "<<a<<endl;
		cout<<"b: "<<b<<endl;
	}
}

int main()
{
    china::foo();//显示调用

    using china::foo();//using声明
    fo
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值