C++入门篇——关键字、命名空间、输入/输出、缺省参数
一、1.关键字
区别于C语言的关键词,c++在其基础上进行了增加扩展,共计63个关键字,而C语言只有32个,同时c++兼容C语言的关键字,具体如下:
二、命名空间
在C/C++的程序编写时,我们通常会定义大量的变量以及函数,每个变量都有其相对应的作用域,但是当我们在实际的编程过程中会发现一个非常大的局限性,就是在同一作用域下不能定义相同名字的变量或者是函数,同时在需要使用别人的代码的情况下,其中的变量名极大可能会与自己代码中的变量名产生重定义,倘若按照传统方法进行修改极不方便,因此为了解决这种问题,在c++中,增加了命名空间的功能
命名空间——其出现的目的在于对标识符的名称进行本地化,以避免命名冲突或名字污染
2.1 命名空间的定义
命名空间就像是各个国家划分边界线一样,使用namespace关键字,后面更上该空间的名字(国家的名字),之后用 { } 框住定义的区域即可(边界线);命名空间可以嵌套(类比一个国家下有不同的省份区域),从而实现不同作用域的管理;同时在一个工程下允许存在多个相同名称的命名空间,但在这些空间中不允许重定义,编译器最后会合在同一个命名空间中(类比一个国家的疆土,可以不连续,但是只要是这个国家的地方就一定只有一个领导人,不允许自立为王)。所有成员只在其对应的空间中起作用。
2.2命名空间的使用
命名空间的值不能直接调用,届时相当于闭关锁国的状态,井水不犯河水,如果需要使用命名空间中的成员,需要使用特定的语句建立联系(搭建丝绸之路,建立贸易往来)
方法一、加命名空间名称及作用域限定符
space_name::member_name
#include<iostream>
using namespace std;
namespace first
{
int a=100;
}
int main()
{
cout << first::a << endl;//使用限定符的形式直接将成员拎出来使用
return 0;
}
方法二、使用using将命名空间中成员引入
using space_name::member_name
using first::a;
int main()
{
cout << a<< endl;//可以直接在程序中使用该成员
return 0;
}
方法三、使用using展开命名空间,引入所有成员
using space_name;
using first;//引入全部的成员,成员暴露在全局中,容易与全局变量产生冲突
int main()
{
cout << a<< endl;//可以直接在程序中使用该成员,但是容易产生冲突,视情况使用
return 0;
}
三、输入/输出
在c++中兼容C语言中的scanf/printf作为输入/输出的标志命令,但是实际上其中有自己的标准输入/输出的命令,即cin/cout,更加接近数据流的形式
注意:
- 使用cout标准输出与cin标准输入时,必须包含头文件以及std标准命名空间,在这里c++头文件定义的所有成员都属于std命名空间
- c++中的头函数没有 .h 后缀
- 使用c++输入输出更加的方便,不需要增加数据格式的控制,如 %d 、 %c …
- 支持连续的输出与输入,输入输出的顺序均为从左往右
四、缺省参数
还记得C语言中的函数吗,当函数中需要传递参数时,如若参数传递数量不够会怎么样?是不是在编译的过程中会进行报错,而c++对于这种情况定义了一种特殊的语法,设定缺省参数。
缺省参数是声明定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参
注意:
- 半缺省参数必须从右往左依次来给出,不能间隔着给
- 缺省参数不能在函数声明和定义中同时出现
- 缺省值必须是常量或者全局变量
- C语言不支持(编译器不支持)