c++命名空间作用域

     1. 我们一个大型的程序通常由不同模块构成,而且不同的模块又常常是由不同的人来开发。所以不同模块中的类和函数就有可能发生重名,这样链接的时候就会出现二义性甚至是多义性,这时候就用到了命名空间。

千万注意:声明命名空间的时候千万不要写在函数体内部,这样会报错

命名空间的语法:

namespace 命名空间名{

   各种声明或定义

}

//我们也可以不写命名空间名,这样就是声明了一个匿名空间,如果我们有东西不想被其他文件看到,就放到这个空间里。可以定义多个匿名空间,每个匿名空间都是独立存在的,互不干扰

 

  2.命名作用域也可以嵌套使用

namespace A{
    namespace B{

    }
}

使用的时候
using namespace A::B;
或者
A::B::名字

3.分文件编写时的几个注意点:

1.命名和定义分开写的时候都要加上namespace作用域

2.使用的时候有两种写法。其他的注意点看下面的代码段就可以

//test.h
#ifndef TEST_H //注意,这里千万不要写成TEST.H,必须用下划线,用点不行
#define TEST_H
//命名空间A的定义
namespace A {
	void print();
}
//命名空间B的定义
namespace B {
	void print1();
}
#endif


//test.cpp

#include<iostream>
#include"test.h"
using namespace std;
//命名空间A的实现
namespace A {
	void print() {
		cout << "test函数被调用" << endl;
	}
}
//命名空间B的实现
namespace B {
	void print1() {
		cout << "copy test函数被调用" << endl;
	}
}


//main.cpp
#include<iostream>
#include"test.h"
using namespace std;
int main() {
	//访问的时候有多种方式,一种是写using namespace 空间名,这样这里面的所有东西下面都可以使用
	using namespace A;
	print();

	//但是如果我们只想访问这个空间里的某个对象,就可以这样写
	B::print1();

	
}

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ad_m1n

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值