C到 C++

一、C++对C的扩展

1.C++的输入输出(cin,cout)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
关于cin cout endl定义和使用

cin cout endl这些对象都是由C++提供定义的,我们在使用时,只需要将定义和声明 部分引用到自己工程即可。

比如:

#include <iostream>

using namespace std; extern ---- 外部声明,它告诉编译器,这个变量是在其他地方定义,这个地方告诉编译 器是一个外部声明

extern istream cin; /// Linked to standard input

extern ostream cout; /// Linked to standard output

它们被定义在std命名空间中

namespace std

{

extern istream cin;

extern ostream cout;

}

std及istream和ostream他们都间接引入#include <iostream>

所以在使用时,必须要包含该文件中,对于using namespace std;是可选的

总结:

​ 1 要引用头文件:#include ,要引入std命名空间,比如using namespace std;

​ 2 在使用cin输入多个不同类型的数据时,可通过按回车或者 空格进行分隔输入

2.C++字符串类型(string)

C++类型分为内置类型(C语言的类型,比如:int double)和类类型(使用关键字class定义的类型)

在C++中提供了一个类类型string,该数据类型主要用来处理字符串操作,可以替代C语言中char数组和字符指针(char*)。基本使用如下:

char* —- char char a[10]

3.C++布尔类型(bool)

布尔类型(bool)是C++中新增的一种基本数据类型。类似于C中的基本数据类型(比如:int)。该类型的值只有两种情况:true和flase,如果需要使用bool类型,直接使用即可。

true —— 1

flase —— 0

bool isok = true;

对于值的含义跟C语言保持一致,零为假,非零即真,但是值仍为1

4.C++枚举类型(enum)

C++ 枚举在使用上跟C语言中完全一样,不同的是,它才是真正意义上枚举类型,而C语言中的枚举类型本质上是一个整型常量。

5. C++命名空间(namespace)

1).命名空间引入分析

在实际的系统开发中,所有的开发工作,通常都不会仅由一个人来开发完成,不同的人只负责自己功能模块,他们在设计时,比如声明变量,通常情况下,不会考虑其他人是否已使用该变量名,在模块功能测试时,相互之间是独立的,完全没有问题,当系统功能合成 时,不可避免地会出现变量或函数的命名冲突,因为变量或函数重名而导致的问题将会造成一定的混乱。

目的是为了解决命名冲突,引入歧义

2).命名空间(namespace)使用

命名空间目的是给一个变量或者函数一个限制的作用域,从而解决命名冲突

注意事项:在定义命名空间时,结束不要加分号

由于使用命名空间后,变量的作用域被限定,所以在使用变量时,就需要通过特定方式来完成。需要用到“::”操作符,“::”操作符是域解析操作符。

除了直接使用域解析操作符,还可以采用using声明(using declaration)

using声明不仅仅可以针对命名空间中的一个变量,也可以用于声明整个命名空间

命名空间成员使用方法总结:

  1. ​ 方法一 :命名空间名::成员 比如:spaceA::a;

​ 使用using 可以使得命名空间中的成员暴露外部 ,以致可以使用该成员

  1. 方法二: using 命名空间名::成员 ——> 把指定的成员暴露给外部

​ 比如:using spaceA::a;

  1. 方法三: using namespace 命名空间名 —-> 将其所有成员暴露给外部

​ 比如: using namespace spaceA;

3)命名空间嵌套

namespace 命名空间1

{

​ int a;

​ namespace 命名空间2

​ {

​ int a;

​ }

}


开发环境搭建

一、C++开发工具介绍

1.windows学习工具

​ vs(微软IDE(集成开发环境)) —VS一般指Microsoft Visual Studio

​ qt creater(windows版本)

      vscode

      dev-c++

2.linux学习工具

​ g++编译器

g++ test.cpp -o test

​ qt creater(linux版本)

二、qt creater安装

工具下载:

http://download.qt.io/archive/qt/

工具安装重要步骤说明:

​ 第一:双击exe文件,电脑在断网操作,执行到下一步后,就可以重新连接网络

第二:软件工具不能安装在中文路径

第三:选择安装组件,选择使用MinGW

最后:默认选择下一步,最后进行安装即可

在安装成功后,在电脑的开始任务栏 如下图所示图标

linux下安装说明:

在linux下进行安装时,也需要对虚拟机断网

三 、C++工程创建

工程创建关键步骤说明:

第二:设置工程目录,工程的目录不能是中文

第三:选择下一步,点击完成即可,设置编译程序的工具集:32位或者64位都可以

第四:程序创建完成

第五:程序运行

四、C++基本程序结构分析

1.C程序 ——>后缀为 .c

2.C++程序: 后缀为.cpp —- (c plus plus的意思) 除此之外 ,还有hpp—头文件类型

C程序结构和C++程序结构的区分和总结:

源文件: .cpp .cc .cxx

头文件:.h .hpp

1)#include —-> C++头文件跟C不一样,不要加后缀.h

​ i —-> in —->输入

​ o —> out —-> 输出

输入和输出以流(stream)的来进行,所以就无需指定输入和输出的格式化(%d,%s,…)

该文件的作用:用于包含标准的IO对象的定义

​ cin —- 标准输入流,它相当于键盘,cin >> i >> j —->一次性输入多个,在输入时,要空格或回车

​ cout —- 标准输出流,它相当于屏幕

2)cin >> i; —-> 从键盘上输入一值给i

3)cout << “c = “ << c << endl; —-> 将字符串(c =)先输出到屏幕,再将c的值输出到屏幕,

最后将换行符(endl)输出到屏幕。

C++ 使用endl来代替换行符,目的是为了跨平台性

​ linux换行 —-> \n

​ windows —-> \r\n