C++语言是通过对C语言不足的地方进行优化创建的,C++在C语言之上,C++固然也兼容C语言,
在大部分地方利用C++比C更方便,可能利用C需要一两百行代码,而C++只需要五六十行。
目录
C++关键字
定名空间
缺省参数
缺省参数分类
函数重载
C++关键字
C语言中有32个关键字,在C++中有63个关键字:
很多关键字与C语言中的一样。
定名空间
在C/C++中,变量、函数以及的类都是大量存在的,这些变量、函数和类的名称将都存 在于全局作用域中,可能会导致很多冲突。利用定名空间的目的是对标识符的名称进行本地化, 以避免定名冲突或名字污染,namespace关键字的出现就是针对这种题目的。
在输入#include<iostream>之后就包罗了C++标准库以及关键字等,它们都被封装在std中,在没有利用第六行的代码之前利用C++中的东西就会报错,编译中搜刮不到,当利用第六行的代码就把C++中的东西全部暴露出来了(在全局中),在寻常写代码可以利用,但是在项目中不要全部展开,不然可能会导致定名冲突,我们可以单独开放某些常用变量或者函数,没有开放的就需要再前面加std::,也可以创建自己的定名空间。
上述代码便是对某些变量开放,可以直接利用,而cin我们未对其开放在利用时需要在前面加上std::。
运行结果:
自界说定名空间
利用namespace加名称可以形成自界说定名空间,自界说定名空间可以多重嵌套,想要访问定名空间中的变量或者函数就需要再该变量或者函数前加上L::,如许可以很好的防止定名冲突。
注意:同一个工程中允许存在多个相同名称的定名空间,编译器末了会集成同一个定名空间中。
缺省参数
缺省参数的概念
缺省参数是指在函数声明或者界说时为函数的参数给定一个缺省值。在调用这个函数时如果没有输入实参就直接调用给定的缺省值。
- #include<iostream>
- using namespace std;
- void Fun(int a = 0)
- {
- cout << a << endl;
- }
- int main()
- {
- Fun();
- Fun(10);
- }
复制代码 运行结果:
从运行结果可以看出,第一个函数没有实参,却没有报错,调用了缺省值,所以a等于0,第二个函数给了一个实参,就没有调用缺省值。
缺省参数分类
缺省参数有全缺省参数和半缺省参数
全缺省参数
- void Func(int a = 10, int b = 20, int c = 30)
- {
- cout<<"a = "<<a<<endl;
- cout<<"b = "<<b<<endl;
- cout<<"c = "<<c<<endl;
- }
复制代码 半缺省参数
- void Func(int a, int b = 10, int c = 20)
- {
- cout<<"a = "<<a<<endl;
- cout<<"b = "<<b<<endl;
- cout<<"c = "<<c<<endl;
- }
复制代码 注意事项:
1. 半缺省参数必须从右往左依次来给出,不能间隔着给
2. 缺省参数不能在函数声明和界说中同时出现
3.缺省参数在C语言中是不支持的。
4.缺省参数在函数声明中出现,界说中最好不要出现。
函数重载
函数重载:是函数的一种特别环境,C++允许在同一作用域中声明几个功能雷同的同名函数,这 些同名函数的形参列表(参数个数 或 类型 或 类型顺序)差别,常用来处置惩罚实现功能雷同数据类型 差别的题目。
那什么是形参列表的参数差别、类型差别、类型顺序差别呢?
参数类型差别:
- int Add(int left, int right)
- {
- cout << "int Add(int left, int right)" << endl;
- return left + right;
- }
- double Add(double left, double right)
- {
- cout << "double Add(double left, double right)" << endl;
- return left + right;
- }
复制代码 参数个数差别:
- void f()
- {
- cout << "f()" << endl;
- }
- void f(int a)
- {
- cout << "f(int a)" << endl;
- }
复制代码 参数类型顺序差别 :
- void f(int a, char b)
- {
- cout << "f(int a,char b)" << endl;
- }
- void f(char b, int a)
- {
- cout << "f(char b, int a)" << endl;
- }
复制代码 注意:如果两个函数函数名和参数是一样的,返回值差别是不构成重载的,因为调用时编译器没办 法区分。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |