简单唠几句
从今天开始我们就要进入C++的学习了
众所周知,C++是在C语言的基础上应运而生的,其容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式,为我们在编程上提供了很大的便捷
在接下来的这几篇C++入门的博客中,我会先讲解一些基础的语法,为后续类和对象学习打基础
OK,废话不多说,让我们进入C++的世界吧~
命名空间
在C/C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化
以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的
我们不妨先看一下下面这段代码
#include <stdio.h>
#include <stdlib.h>
int rand = 10;
int main()
{
printf("%d\n", rand);
return 0;
}
执行上述代码后结果如下:
我们发现我们定义的变量与库发生冲突,而C语言却没办法解决类似这样的命名冲突问题
所以C++提出了用namespace来解决
我们定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}
{}中即为命名空间的成员
我们需要知道: 命名空间中可以定义变量/函数/类型
请看下面的代码:
接下来我们来看一个命名空间该如何使用,我们先看第一种使用方式
在main主函数中,这种加命名空间名称及作用域限定符 的方式是命名空间的一种使用方法
当然,我们也可以使用using将命名空间中某个成员引入
例如:
这是第二种使用方式
除此之外,命名空间的第三种使用方式是使用using namespace 命名空间名称 引入
请看下面的代码:
使用这种命名空间的好处就在于可以防止发生命名冲突
除此之外,命名空间还可以嵌套
C++输入&输出
下面我们来看一下关于C++的输入与输出是怎么实现的
请看下面的代码:
这里的代码出现了很多我们学C语言时没接触过的东西,下面且听我一一说来:
1. 使用cout标准输出对象(控制台)时,必须包含< iostream >头文件,以及按命名空间使用方法使用std
2. cout是全局的流对象,endl是特殊的C++符号,表示换行输出,他们都包含在包含<
iostream >头文件中。
3. <<是流插入运算符
特别注意的是:这里我们命名空间使用方法是using namespace std;
这样子使用虽然及其方便,不需要我们每次使用都去指定域,但也存在不足
因为我们把全部都展开了,如果我们不小心定义了一个与里面相同的变量,就会报错
虽说我们在日常的学习中不太可能出现这种问题,这样展开肯定可以,但是在以后写项目时,我们可以选择指定展开,即用到什么引入什么
使用C++输入输出相比于有一个很大的方便,那就是它不需要像printf/scanf输入输出时那样,需要手动控制格式,C++的输入输出可以自动识别变量类型
不过,因为C++兼容C,所以我们今后写代码是可以混着写,printf也是可以用的~
了解了输出,其实输入也很简单了,大家看一下下面的代码应该就能理解了~
缺省参数
缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实参则采用该形参的缺省值,否则使用指定的实参
我们看一下下面的代码:
我们发现上面的函数在输出时,当我们没有传参时,就会使用参数的默认值,当我们传参时,它就会使用指定的实参
下面我们对缺省函数进行一个分类:
1.全缺省参数
2.半缺省参数
Tips:
1. 半缺省参数必须从右往左依次来给出,不能间隔着给
2. 缺省参数不能在函数声明和定义中同时出现
3. 缺省值必须是常量或者全局变量
对于第2点,我们看看一个例子加深一下理解~
比如我们在.h和.cpp文件对函数的声明和定义的参数不一致,那么就会出现歧义
结语
好啦,对于C++入门的第一篇博客就先写到这里吧
如果文中分析,题解代码有不足的地方欢迎大家在评论区讨论和指正
接下来我也会持续更新与C++相关内容的博客
让我们在接下来的时间里一起学习,一起进步吧~