一、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;
}

运行结果:

image

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;
}

运行结果:

image

2.2 或者在C中,包含 stdbool.h 头文件来使用 bool、true 和 false

stdbool.h 内部源码,可以看到也是宏定义形式。

image

3. 关键词的不同

因为随着 C++ 的标准一直在发展,关键词的个数肯定是要多于 C 的。

所以可以关注一些细微区别,如:
(1) struct: 在 C 语言中 struct 定义的变量中不能有函数,而在 C++ 中可以有函数。

(2) malloc: malloc 函数的返回值为 void,在C语言中可以赋值给任意类型*的指针,在 C++ 中必须强制类型转换,否则报错。

(3) structclass: class 是对 struct 的扩展,C++ 中两者区别主要是访问权限,struct默认的访问权限是 public,而 class 默认的访问权限是 private.

4. 面向过程 和 面向对象

(1) 面向过程:面向过程编程就是分析出解决问题的步骤,然后把这些步骤一步一步的实现,使用的时候一个的依次调用就可以了。

(2) 面向对象:面向对象编程就是把问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述某个事物在整个解决问题的步骤中的行为。

五子棋例子:
(1) 面向过程: 开始游戏,白子先走,绘制画面,判断输赢,轮到黑子,绘制画面,判断输赢,重复前面的过程,输出最终结果。
(2) 面向对象: 黑白双方(两者的行为是一样的)、棋盘系统(负责绘制画面)、规定系统(规定输赢、犯规等)、输出系统(输出赢家)。
面向对象是高度实物抽象化(功能划分)、面向过程是自顶向下的编程(步骤划分)。

所有记录:游戏开发:C++学习

posted @ 2024-04-13 23:40  bok_tech  阅读(16)  评论(0)    收藏  举报