C++与C的区别(一)头文件与命名空间

C++与C的区别(一)

头文件与命名空间

在C++中创建的源文件为.cpp文件,而包含头文件的方式依旧是两种:包含自己的头文件和包含库文件。

(1)包含自己的文件和C没有任何区别,依旧是.h文件。例如:#include“myHead.h”,包含自己创建的头文件

(2)在包含库文件的过程中C和C++就有些许的区分: 在包含C头文件的时候可以采用原来的方式,可以用C++包含方式,去掉.h 并在前面加个c,例如:#include。

注意:为 C++标准输入输出流的头文件!

C++中命名空间的引入

1、命名语法:namespace 空间名{}
命名空间使用例子:

//基本创建空间方法
namesapce 空间名
{ 
 int a;
 void print(){}
 }
//访问命名空间中的东西,用空间名限定去访问
int main()
{
空间名::a=1100;
空间名::print();
return 0;
}

2、作用域分辨符::
(1)空间名限定,类名限定;

namespace name
{
 int a=2;
 void print();
}
void name::print()
{std::cout<<"空间中声明,外部实现"<<std::endl;}
//这样也是被允许的

(2)用来表示全局变量

//例如我们这里有一个全局变量和局部变量
int num=1;
int main()
{
 int num=2;
 printf("%d\n",num);//此处打印的是2;
 /*C语言当中当我们局部变量和全局变量作用域相同时:
   那么采用就近原则*/
 printf("%d\n",::num);//此处打印的是1;
/*所以为了能够区分全局变量和局部变量,利用作用域分辨符
来标识当前变量为全局变量*/
 }

3、命名空间也增加标识符的使用率,C语言同一个作用域下不允许定义相同的标识符

4、using语法,可以省略前缀的写法

using namespace 空间名;
//可以省略当前的空间名,只在当前作用域下有效

**注意:**使用using namespace语法过程中,不要存在二义性问题,也就是出现两个选择,例如:

namespace nam
{
 int a=1;
 void print();
}
namespace sum
{
 int a=2;
 void print();
 }
int main()
{
 using namespace nam;
 printf("%d",a);
 // using namespace sum;
 //printf("%d",a);此处存在二义性问题
 return 0;
}

5、空间名的嵌套与空间内容的访问,依旧是利用作用域分辨符一层一层的去访问,例如:

namespace A
{
 int a=1;
 namesapce B
 {
  int b=2;
 }
}
A::B::b=110;
using namespace A::B;
b=110;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值