一、C++面向对象程序设计



00:10



1. 应具备的基础



00:32



  • 语言基础: 需要学过某种过程式语言(procedural language),特别是C语言最佳,但其他语言也可以

  • 核心概念:

    • 变量(variables)和类型(types): 包括

      intintint

      ,

      floatfloatfloat

      ,

      charcharchar

      ,

      structstructstruct

    • 作用域(scope): 理解变量在大括号内的生命周期

    • 循环结构: 熟练掌握

      whilewhilewhile

      ,

      forforfor

      循环

    • 流程控制: 掌握

      if−elseif-elseif−else

      ,

      switch−caseswitch-caseswitch−case

      等控制结构

  • 开发经验:

    • 了解程序需要编译、链接才能执行的基本原理

    • 具备实际编译和链接程序的经验(无论是命令行还是集成开发环境)

    • 有实际编写程序的经验

2. 目标



03:12



  • 编程风格:

    • 培养正规、大气的编程习惯

    • 即使是小程序也要体现专业风范

  • class设计:

    • 掌握良好的C++ class编写方式

    • 学习两种经典class类型:

      • 不带指针成员的class(以Complex为例)

      • 带指针成员的class(以String为例)

  • 面向对象:

    • 学习class之间的关系(Object Oriented)

    • 掌握继承(inheritance)、复合(composition)、委托(delegation)等概念

  • 课程结构:

    • 分为基于对象(Object Based)和面向对象(Object Oriented)两大部分

3. 将获得的代码



05:13



  • 示例项目:

    • Complex类: 实现数学中的复数功能

      • 包含complex.h头文件和complex-test.cpp测试文件

    • String类: 展示带指针成员的class设计

      • 包含string.h头文件和string-test.cpp测试文件

    • OOP示例: 展示多个class之间的关系

      • 包含oop-demo.h头文件和oop-test.cpp测试文件

  • 教学方式:

    • 通过这三个具体案例来讲解C++语言设计

    • 案例涵盖从简单到复杂的程序设计

4. C++的历史



06:14



  • 发展脉络:

    • B语言(1969年) → C语言(1972年) → C++语言(1983年)

    • 早期名称: C with Class → C++

  • 相关语言:

    • Java和C#等面向对象语言都受到C++影响

    • 学习C++有助于理解其他面向对象语言

  • 语言特点:

    • 建立在C语言基础上

    • 第一个被广泛接受的面向对象语言

    • 关键字和概念与其他面向对象语言相似

5. C++的演化



07:51



  • 主要版本:

    • C++98(1.0): 第一个标准化版本

    • C++03(TR1): 技术报告版本

    • C++11(2.0): 重大更新版本

    • C++14: 小幅度更新版本

  • 学习重点:

    • 课程内容基于C++98标准

    • 目前业界主要使用C++98

    • C++11新特性尚未被广泛采用

  • 学习组成:

    • 语言本身(语法和语义)

    • 标准库(重要组成部分)

      • 现代编程语言都包含庞大的标准库

      • 不使用标准库的C++程序员不是合格的程序员

6. 参考书目



11:10



  • 语言基础:

    • 《C++ Primer》: 百科全书式的C++入门书籍(第五版)

    • 《The C++ Programming Language》: C++之父Bjarne Stroustrup所著(第四版)

  • 进阶技巧:

    • 《Effective C++》: Scott Meyers著(第三版)

      • 提供55个改善程序技术和设计思维的有效做法

      • 以条款形式给出专业建议

  • 标准库:

    • 《The C++ Standard Library》: 全面介绍标准库

    • 《STL源码剖析》: 深入分析标准库实现(适合高级学习者)

  • 学习建议:

    • 从基础语言书籍开始

    • 通过Effective系列提升编程技巧

    • 标准库学习是成为专业C++程序员的必经之路

二、知识小结

知识点

核心内容

考试重点/易混淆点

难度系数

C++面向对象程序设计基础

面向对象是一种编程观念,C++是支持该观念的语言

面向对象与过程式编程的区别

⭐⭐

课程基础要求

需掌握过程式语言(如C语言)、变量、类型、作用域、循环、流程控制等基础

C与C++的术语关联性

⭐⭐

课程目标

培养正规编程习惯,掌握C++类的设计(带指针与不带指针的类)

基于对象 vs 面向对象的设计差异

⭐⭐⭐

C++历史与版本

从C with class演化至C++98/C++11,与Java/C#的异同

C++11新特性的普及度

⭐⭐

学习资源推荐

《C++程序设计语言》《Effective C++》《C++标准库》等经典书籍

标准库在实际开发中的重要性

⭐⭐⭐

课程案例

复数类(Complex)、带指针类、多类关联(OOP)实现

指针类与非指针类的设计差异

⭐⭐⭐⭐

开发工具

命令行编译或集成环境(IDE)的使用

初学者环境搭建的辅助引导