C 和 C++ 非常类似,具体来说:
尽管 C 和 C++ 非常类似,但它们之间也有许多区别:
C | C++ | |
发明人 | 丹尼斯·里奇 (Dennis Ritchie) | 本贾尼·斯特劳斯特卢普 (Bjarne Stroustrup) |
开发时间 | 1969 - 1973 | 1979 |
文件扩展名 | .c | .cpp .c++ .cc .cxx |
过程式 | 过程式 + 面向对象 | |
编程驱动方式 | 函数驱动 | 对象驱动 |
专注于 | 方法和过程 | 数据 |
数据类型 | 内置数据类型 | 内置数据类型 + 用户定义数据类型 |
关键字 | C90: 32 个 C99: 37 个 C11: 44 个 C23: 59 个 | C++98: 63 个 C++11: 73 个 C++17: 73 个 C++20: 81 个 |
标准 IO 头文件 | stdio.h | iostream.h |
动态内存分配与释放 | 函数 malloc()、free() | 运算符 new、delete |
输入 / 输出 | scanf() / printf() | cin / cout |
信息隐藏 | 不支持 | 支持(通过封装) |
多态 | 不支持 | 支持 |
封装 | 不支持 | 支持 |
继承 | 不支持 | 支持 |
函数重载 | 不支持 | 支持 |
运算符重载 | 不支持 | 支持 |
结构体中的函数 | 不支持 | 支持 |
命名空间 | 不支持 | 支持 |
引用变量 | 不支持 | 支持 |
虚函数 | 不支持 | 支持 |
友函数 | 不支持 | 支持 |
不支持 | 支持 | |
访问修饰符 | 无 | 有 |
严格类型检查 | 无 | 有 |
类型双关(联合体) | C99 及以后 | 未定义行为(极少数特例) |
命令初始化器 | 可以无序 | 必须匹配结构体布局 |
元编程 | 宏定义 + _Generic() | 模板(已废弃) |
#头条创作挑战赛##c语言、c++和c的区别在哪#