一、C 和 C++ 的区别
1. CPP 的 Hello World
两点:头文件、输出方式。
// C 的 导入
// #include "stdio.h"
// #include "stdlib.h"
// C++ 的 导入
#include<iostream>
using namespace std;
int main()
{
printf("Hello World !\n"); // C 的 输出
cout << "Hello World !" << endl; // C++ 的 输出
return 0;
}
运行结果:

2. C 与 C++ 的 bool
布尔类型(bool)是 C++新增的,在 C 中并未定义bool类型。
2.1 如果 C 使用 bool,可以通过宏定义实现
#include "stdio.h"
#include "stdlib.h"
using namespace std;
#define Bool int
#define False 0
#define True 1
int main()
{
Bool bTestFalse = False;
printf("%d\n", bTestFalse);
Bool bTestTrue = True;
printf("%d\n", bTestTrue);
return 0;
}
运行结果:

2.2 或者在C中,包含 stdbool.h 头文件来使用 bool、true 和 false
stdbool.h 内部源码,可以看到也是宏定义形式。

3. 关键词的不同
因为随着 C++ 的标准一直在发展,关键词的个数肯定是要多于 C 的。
所以可以关注一些细微区别,如:
(1) struct: 在 C 语言中 struct 定义的变量中不能有函数,而在 C++ 中可以有函数。
(2) malloc: malloc 函数的返回值为 void,在C语言中可以赋值给任意类型*的指针,在 C++ 中必须强制类型转换,否则报错。
(3) struct 和 class: class 是对 struct 的扩展,C++ 中两者区别主要是访问权限,struct默认的访问权限是 public,而 class 默认的访问权限是 private.
4. 面向过程 和 面向对象
(1) 面向过程:面向过程编程就是分析出解决问题的步骤,然后把这些步骤一步一步的实现,使用的时候一个的依次调用就可以了。
(2) 面向对象:面向对象编程就是把问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为。
五子棋例子:
(1) 面向过程: 开始游戏,白子先走,绘制画面,判断输赢,轮到黑子,绘制画面,判断输赢,重复前面的过程,输出最终结果。
(2) 面向对象: 黑白双方(两者的行为是一样的)、棋盘系统(负责绘制画面)、规定系统(规定输赢、犯规等)、输出系统(输出赢家)。
面向对象是高度实物抽象化(功能划分)、面向过程是自顶向下的编程(步骤划分)。

浙公网安备 33010602011771号