前言:(1)c++兼容c语言,是对c语言的一个优化,可以用c语言实现的代码,一定也可以用c++实现。
(2)一般标准库包含为#include<iostream>,应理解为流的包含。
(3)cin>>(从键盘输入数据) cout<<"hello!"<<endl(输出结果)。
1:命名空间的使用
主要作用:解决与库之间的命名冲突问题。
(1)命名空间的含义与定义
命名空间是一块自己的私有的空间域,在里面可以定义函数,对象等等,创立一个命名空间之后,若对象名与局部对象相同也不会发生冲突。
(2)命名空间的展开
以c++标准命名空间展开为例,上述所说的cin,cout均属于标准命名空间std中,平常调用为:
std::cin>>num; std::cout<<"hello!"<<endl;
若想简化代码直接使用,展开命名空间即可:using namespace std;
Ps:对于自定义的命名空间不可以随意展开,若含有好几个同名对象,会让编译器不知道到底该调用哪一个!!!
代码实现:
运行结果:
(3)访问顺序的辨析
首先,默认状态下作用域的访问顺序:局部域->全局域。
Ps:在查找时,不会在私人的命名空间中查找!!!!要调用私人的命名空间时,一定要注意前面的指定,如下:
2:引用
概念:对于变量取了一个新名字,本身并不开辟空间,指向的空间依旧为原先的那个变量。
如:int a = 3; int& b = a;(其中b是a的别名,顺序不可颠倒!!!)
作用:
(1)与指针类似,对于数据的交换更加方便
(2)在对于传参为指针,但要改变本身的情况,使用指针也会更加方便,例如单链表的创建
特性:
(1)一个对象可以有多个别名,进行多次引用
(2)引用必须在声明的时候就进行初始化
(3)不可以对已经是一个对象的引用再次作为另一个对象的引用
使用引用时候的权限问题:
1:对于已被const修饰的对象,不可以再对其进行引用,会造成权限的放大。
2:原先对象未被const修饰,别名被const修饰,可以,造成权限的缩小而已。
3:未有任何条件,直接进行引用,是权限的平移,可以。
如下:
辨析:
Ps:只有引用才会考虑到权限的问题!!!引用的权限只可以缩小,不可以放大!!!
3:缺省函数
(1)缺省函数的定义以及分类
在声明函数时,形参部分变量已经被赋值, 如:int Add(int x = 3 , int y = 4),像这类的函数被称为缺省函数。
缺省函数大体上被分为两类,半缺省函数以及全缺省函数。
int Add(int x = 3 , int y); int Add(int x , int y)。
(2)缺省函数的使用以及意义
在函数不进行传参时,直接使用原先声明时就已赋值的值,让函数的使用变得更加方便。
Ps:在使用依旧遵循形参的改变不改变实参,以及实参的优先级大于形参。
4:重载函数
(1)重载函数的定义
重载函数是指同一作用域下的同名函数,功能类似,但是形参的类型,个数以及顺序不一致。
Ps: 与形参的名字无关!!!
(2)重载函数的具体使用
重载函数的实现主要可以使得同个函数名却拥有多种不同的功能,使得函数的调用更加灵活化。
具体的一些基础实现:
(3)c++与c语言的差别
c++实现的原理:若声明与定义分离,编译器只有在定义的时候才会拿到函数地址进行调用。
c语言中不可以出现同名函数,但c++中可以使用,即为重载函数,原因:在编译时,c语言直接用函数名进行查找,而c++是根据修饰后的函数名进行调用,所以C++支持重载。