1.命名空间
在c/c++中,变量,函数和后面学到的类都将存在全局的作用域,可能回导致冲突,使用命名空间的目的是对标识符名称本地化。
在c语言中,无法解决上述的命名冲突的问题,在c++中提出了namespace来进行解决
如下图:
1.1命名空间的定义
定义命名空间需要namespace 关键字,后面跟命名空间的名字然后加上{}即可
命名空间是可以嵌套的,如果同一个工程允许存在多个相同名称的命名空间,编译器会合成同一个命名空间
注意:一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中
1.2命名空间的使用
根据上文我们已经学会了如何定义命名空间,下面我们将学习如何使用
命名空间的使用有三种方式:
第一种 加命名空间名称及作用域限定符
第二种 使用using将命名空间的某个成员引入
第三种 使用using namespace将命名空间名称引入
2.C++输入和输出
我们在学习c语言的时候,相信大家第一个写的程序都是hello,world吧,那么我们该如何用c++来写一个hello,world呢?
运行一下看看效果:
std是c++的标准库,c++将标准库的定义都放到std这个命名空间中
使用cout标准输出对象和cin标准输入对象时,必须包含<iostream>头文件,并且按照命名空间使用方法使用std
endl表示换行输出,都包含在<iostream>头文件中
<<是流插入运算符,>>是流提取运算符,使用c++会使得输入和输出更方便,不需要手动进行控制格式,c++输入和输出可以自动识别变量的类型。
运行一下看看效果:
3.缺省参数
3.1缺省参数的概念
缺省参数是声明或定义函数时为函数的参数指定一个缺省值。调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参。
3.2缺省参数分类
缺省参数分为全缺省参数,半缺省参数
第一种全缺省:
第二种半缺省:
注意观察fun2里面的参数
注意:1.半缺省参数必须从右往左依次给,不能间隔给
2.缺省参数不能在函数声明和定义种同时出现
(假装有图)。。。。。。。。。。。后期补一下
3.缺省参数必须是常量或者全局变量
4.c语言不支持(编译器不支持)
4.函数重载
4.1什么是函数重载
函数重载:函数的一种特殊情况,C++允许在统一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(形参个数 或 类型 或 类型顺序)不同,常用来处理实现功能类似数据类型不同的问题。
1.参数类型不同:
2.参数的个数不同:
3.参数类型的顺序不同:
设计了一个程序来展示一下效果:
效果图:
4.2 c++为什么支持函数重载?
C语言没有办法支持重载,因为同名函数没有办法区分,而C++是通过函数修饰规则来区分,只要参数不同,修饰出来的名字就不同,因此支持重载。