经过一个多月的学习终于进入C++啦
希望自己能够保持对编程的热爱 继续学习下去!
并且将学习到的知识传递给大家
C++是一种面向对象的高级程序设计语言,是C语言的超集。C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。
当然这里这些都是网上的套话了 我们这里就把c++当成是c语言的一种补充 继续学习下去
c++ 一共63个关键字
对比c语言的32个更多了一些
我们再后面学习到的时候会逐个进行讲解
在c语言中我们有一个不太能解决的问题
就是关于命名冲突的问题
比如以下代码
我们这里可以发现以下的错误
但是当我们屏蔽掉这一行代码的时候
我们可以发现! bug消失了
这是为什么呢?
大家不知道还记不记得我们以前学过预处理编译连接
因为我们包含了这个头文件 这个头文件里面有对于rand的定义
所以说会报错
这就叫命名冲突!!!!
但是呢 在c语言阶段我们并没有一个很好的方式来处理这些问题
只能是说知道了有这个命名冲突的存在我们将它的命名修改下
类似是这样子
但是我们c++提供了一个关键字来解决这些问题
首先说它的作用
它类似于创建一个隐身衣
给作用域里面的所有定义的变量 函数这些套上
让别人找不到它
比如说我们可以这么写
我们可以发现 这里竟然不会报错了
这里就涉及到了一个查找规则的问题
当我们使用一个变量的时候 编译器会首先在局部变量中寻找 如果局部变量中没有的话就会到全局变量中寻找 如果都没有 就会报错
这里需要注意的是 编译器是不会在到命名域里面去寻找的
当然这里除了可以定义变量之外 一切你能够想到的定义类型在命名域里面都可以定义
比如说 函数 比如说 结构体
命名域有三种使用方法
1 加空间名称和域作用符
比如说这样子
我们在这里就可以使用命名域里面定义的rand了
2. 使用using 将命名空间中的某个成员引入
比如说这样子
3. 使用using将整个命名域引入
比如说这样子
接下来我们来用c++来写除hello world吧
我们来分析下这一段代码
#include
using namespace std;
int main()
{
cout << "hello world" << endl;
return 0;
}
首先我们包含了一个头文件
之后我们使用了这么一行代码
using namespace std;
这里我们使用了std这样一个命名域!
说明了cout endl的定义就是在这里面的
之后我们写下来了这样一段代码
cout << "hello world" << endl;
我们可以将cout当作一个输出流
首先输出一个hello world
再之后输出一个endl(实际上就是一个换行符)
我们这里cin是一个标准输入流
比我们c语言方便的一点是 这里不需要获取类型就可以
比如说我们下面的
本篇文章主要介绍了c语言的关键字 命名空间(namespace)还有简单的输入输出
有不对的地方还请大佬指正