01 C++概述


一、C++语言发展史

  1. 起源与演进
    • 1960s:剑桥大学Martin Richards开发BCPL语言,用于系统软件开发。

    • 1970年:贝尔实验室Ken Thompson在BCPL基础上发明B语言。

    • 1972年:Dennis Ritchie和Brian Kernighan设计出C语言,兼具高级语言与汇编特性。

    • 1980年:贝尔实验室开始扩展C语言为“带类的C”(C with Classes)。

    • 1983年:正式命名为C++,支持面向对象编程。

    • 1994年:ANSI C++标准草案制定。

    • 1998年:推出ANSI/ISO C++标准(C++98),成为现代C++的基础。

  2. 意义
    • C++在C语言基础上引入面向对象机制,同时保留高效性、可移植性,成为系统级开发和复杂应用的主流语言。


二、C与C++的核心区别

  1. C语言特点
    • 优势:结构化编程、高效灵活、可移植性强,适合系统程序和科学计算。

    • 缺陷:

    ◦ 类型检查较弱,安全性不足。

    ◦ 缺乏代码重用机制(如类、模板)。

    ◦ 难以支持大规模软件开发。

  2. C++的改进
    • 扩展C的功能:增强类型检查、引入引用、异常处理、模板等。

    • 面向对象特性:封装、继承、多态。

    • 泛型编程:通过模板(类模板、函数模板)实现代码通用性。

    • 兼容性:C是C++的子集,C++完全兼容C语法。


三、面向对象编程(OOP)思想

  1. 核心理念
    • 程序 = 对象 + 消息:以对象为中心,通过消息传递实现交互。

    • 对比面向过程:

    ◦ 面向过程:程序 = 数据 + 算法(按步骤分解任务)。

    ◦ 面向对象:通过对象的属性和行为模拟现实问题(如“冰箱”对象封装开门、关门等操作)。

  2. 三大核心特征
    • 封装、继承、多态。


四、封装(Encapsulation)

  1. 定义
    • 将数据(属性)和操作(方法)绑定为独立单元(类),隐藏内部细节,仅暴露接口。

  2. 作用
    • 提高安全性(如隐藏电路细节的录音机)。

    • 简化外部使用,增强模块化。


五、继承(Inheritance)

  1. 定义
    • 子类继承父类的属性和方法,实现代码重用和层次化设计。

    • 例:孩子类继承父母类的特征和行为。

  2. 意义
    • 减少冗余代码,支持增量开发,提升软件可维护性。


六、多态(Polymorphism)

  1. 定义
    • 同一操作在不同对象中具有不同实现方式,分为:

    ◦ 编译时多态:通过函数重载、运算符重载实现。

    ◦ 运行时多态:通过虚函数(Virtual Function)实现动态绑定。

  2. 示例
    • 函数重载:同名函数根据参数类型/数量执行不同操作。

    • 运算符重载:重新定义运算符行为(如+用于复数加法)。

    • 虚函数:基类指针调用派生类方法,实现接口统一。


七、C++的其他关键特性

  1. 异常处理
    • 通过try/catch机制管理运行时错误,增强程序健壮性。

  2. 模板(泛型编程)
    • 编写与数据类型无关的通用代码,如标准模板库(STL)。

  3. 命名空间
    • 避免命名冲突,逻辑分组代码(如std命名空间)。


八、总结
C++以C语言为基础,通过引入面向对象、泛型编程等机制,解决了C语言在大型项目中的局限性。其核心优势在于:
• 高效性:保留C语言的底层操作能力。

• 扩展性:通过封装、继承、多态支持复杂系统设计。

• 灵活性:模板和重载机制提升代码复用性。

• 标准化:ANSI/ISO标准确保跨平台兼容性。

C++广泛应用于操作系统、游戏引擎、嵌入式系统等领域,是现代软件工程的重要工具。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值