C++与C的区别

C 和 C++ 都是编译型语言,C++ 起源于 C,但两者并不完全兼容。

对比项 C C++
编程思想 主要是面向过程 支持面向过程、面向对象、泛型编程
类和对象 不支持 支持 class、对象、封装、继承、多态
函数重载 不支持 支持同名不同参数的函数
泛型编程 不支持模板 支持模板和 STL
异常处理 没有标准异常机制 支持 trycatchthrow
命名空间 不支持 支持 namespace
内存管理 malloc() / free() new / delete,现代 C++ 常用智能指针
输入输出 printf() / scanf() cout / cin,也可以使用 C 的方式
字符串 通常使用字符数组 支持 std::string
struct 主要用于保存数据 可以包含函数、构造函数等,功能接近 class
常见应用 操作系统、嵌入式、驱动、底层库 游戏、桌面软件、高性能程序、大型工程

示例:输入输出

C:

复制代码
#include <stdio.h>

int main() {
    int age;
    scanf("%d", &age);
    printf("age = %d\n", age);
    return 0;
}

C++:

复制代码
#include <iostream>

int main() {
    int age;
    std::cin >> age;
    std::cout << "age = " << age << std::endl;
    return 0;
}

示例:面向对象

C 中通常需要使用结构体和函数配合:

复制代码
struct Person {
    int age;
};

void show(struct Person p) {
    printf("%d\n", p.age);
}

C++ 可以把数据和函数封装在类中:

复制代码
class Person {
public:
    int age;

    void show() {
        std::cout << age << std::endl;
    }
};

需要注意

很多简单的 C 代码可以用 C++ 编译器编译,但并不是所有 C 代码都兼容 C++。例如,C++ 对类型转换、关键字和一些语法规则更加严格。

面向过程

优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素。

缺点:没有面向对象易维护、易复用、易扩展

面向对象

优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护。

相关推荐
LuminousCPP2 小时前
数据结构‑二叉树(二):二叉堆从零实现|Heap结构设计 + 建堆优化 + 堆排序深度解析
c语言·数据结构·笔记·二叉树
程序员与背包客_CoderZ5 小时前
高性能分布式KV存储引擎RocksDB入门与C/C++编码实战
c语言·开发语言·数据库·c++·分布式·分布式数据库·rocksdb
进击的_鹏5 小时前
从零开始的 Redis 学习
服务器·数据库·c++·redis·缓存
william_yangshun5 小时前
【大模型部署实战】kimi-k3-in-c 中文版:用 176KB 纯 C99 引擎在 CPU 上跑 Kimi K3 上手指南
c语言·开发语言
_Narcissus_6 小时前
链表算法题和静态链表
数据结构·c++·笔记·算法·链表·ai·力扣
布莱克6056 小时前
C++拷贝构造与拷贝赋值运算符的区别详解
开发语言·c++
Yyyyyy~7 小时前
【C语言】数据类型和变量【下】
c语言
啦啦啦啦啦zzzz7 小时前
时间轮定时器
linux·服务器·网络·c++·定时器
此生决int8 小时前
深入理解C++系列(15)——AVL树
开发语言·c++