【C++入门】命名空间,函数重载,编译

众所周知,C++是C语言的继承,进一步扩充和完善了C语言

那么它和C语言的区别到底在哪里呢?以下用代码解释几个C++较之C语言的优势。

  • 命名空间
首先新建一个test.c文件,并输入以下代码

运行可得:


这个结果是可预知的,因为a的重定义,那么换一种方式:

运行结果如何呢?

可以看到是虽然有警告,但是是可以运行出来的,而且结果是以在main函数中定义的a,为什么同样是定义了两个a,换了位置结果就不同了呢?

这是和开辟空间的位置有关的

但是如果一定要将同一个变量在同一空间定义两次,很明显C语言是不能实现的,这个时候我们就需要C++来实现

可以看到,C++也不可以直接在同一空间直接定义两次,那么C++是如何实现的呢?

用过C++的人一定发现了,上述代码和平时使用C++的样子不一样,在头文件之下缺少一句
using namespace std;
那么这句代码的意义是什么呢?我们先来看一个类似的结构:

看到了吗?只要加上namespace就可以在静态区同时定义两次,在这里namespace的作用是名字隔离,就是将各个变量的名字隔离起来,让他们互相察觉不到,像是平行空间。

namespace顾名思义就是命名空间的意思,只要在同一个区开辟不同的域就可以定义很多相同名称的变量,而且命名空间是可嵌套、可更改的

那么using namespace std;到底有什么作用呢?

平时我们使用C++的输入输出都是用cin、cout,但是上面的代码我都是用printf,为什么呢?

很明显,这样是不能用cout的,那么怎么可以用呢?

加上std命名空间的前缀就可以向编译器说明即将使用std下的cout标准对象,但是如果使用次数比较多的话,很明显会很麻烦,而且容易遗漏,那么怎么能简化代码呢?

在前面加上using namespace std;也可以说明以下会使用std库的标准对象。

  • 函数重载
基于上面的命名空间,接着解释函数重载。
函数重载是指在同一作用域内,可以有一组具有相同的函数名,但是不同参数列表的函数,这组函数就被称为 重载函数
重载函数通常用来命名功能相似的函数,这样减少了函数名的数量,避免了命名空间的污染,大大 提高了程序的可读性

注意:参数不同的意思是个数不同或类型不同

  • 编译

首先要了解编译的过程:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值