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等一般采用面向过程开发,性能是最重要的因素。

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

面向对象

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

相关推荐
Zwawa10 小时前
编译器工具链:GCC、Clang、MSVC、ICC、armclang
c语言·嵌入式·编译器
学逆向的10 小时前
C 指针常量与常量指针
c语言·开发语言·网络安全
水饺编程11 小时前
第2章:Linux 基础,exit 命令
linux·c语言·汇编
CodeYp201911 小时前
第15讲:二叉搜索树
开发语言·c++·二叉搜索树
pipixia2003312 小时前
C++继承面试四连问:内存叠加、私有继承、sizeof、权限重映射
c++·面试·嵌入式·继承·面向对象·对象模型
极客 - L U13 小时前
卡尔曼滤波从零到精通
c语言·数据结构·单片机·嵌入式硬件·mcu
牵猫散步的鱼儿14 小时前
C++ 内存分区
c++
choumin15 小时前
C++ 标准容器为什么不能存引用
c++·容器·引用类型
谙弆悕博士15 小时前
用 C 写了个 Windows 聊天室,踩了几个多线程和控制台的坑
c语言·开发语言·c++·windows·网络编程·聊天室
水饺编程15 小时前
第2章:Linux 基础,删除用户
linux·c语言·汇编