C++与C的区别

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

对比项 C C++
编程思想 主要是面向过程 支持面向过程、面向对象、泛型编程
类和对象 不支持 支持 class、对象、封装、继承、多态
函数重载 不支持 支持同名不同参数的函数
泛型编程 不支持模板 支持模板和 STL
异常处理 没有标准异常机制 支持 try、catch、throw
命名空间 不支持 支持 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等一般采用面向过程开发,性能是最重要的因素。

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

面向对象

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

相关推荐
weixin_307779134 小时前
C++代码实现MATLAB中的dlarray函数功能
开发语言·c++·算法·matlab
Frank_refuel7 小时前
C++11之一场名为“搬家”的 C++ 之旅
开发语言·c++
hetao17338379 小时前
2026-10-03~04 hetao1733837 的刷题记录
c++·算法
longlongzihan10 小时前
从LeetCode 70. 爬楼梯看动态规划:如何精准推导状态转移方程?
c++·算法·leetcode·动态规划
潼心1412o13 小时前
C++初阶(长期更新)第6讲:类和对象(下)
开发语言·c++·算法
-森屿安年-13 小时前
按身高排序
c++·算法
山下梅子酒22514 小时前
洛谷-入门-B2079
c语言
(Charon)14 小时前
【C++面试】vector底层原理:扩容、拷贝移动与迭代器失效
c++·面试
朔北之忘 Clancy15 小时前
青少年软编等考七级题解目录
开发语言·c++·青少年编程·gesp·csp·信奥赛·noi
汉克老师15 小时前
GESP2026年9月认证C++七级( 第一部分选择题(8~15题)精讲
c++·gesp·小学生·学c++编程