0、引言
本专栏的系列文章是在学习 北京邮电大学 崔毅东 老师的《C++程序设计 (面向对象进阶)》课程过程中整理的。欢迎前往专栏了解更多相关内容~ 😀
有关于现代 C++ 的基本介绍,请前往《现代C++基本介绍》!
1、导论
- C++ 即 C Plus Plus 即 CPP
 - C++ 之父:Bjarne Stroustrup
 - 如果读者还不会念他的名字,那么可以请他本人亲自教授一下哦( •̀ ω •́ )✧(不是
 - C/C++ 在计算机科学中所处的位置:

 
2、C++ 编程范式(Programming Paradigm)
-  
  
  编程范式 
  
 
 - 规范编程的一系列思想、方法以及程序设计语言构造块所构成的一种模式。
 
C++ 是一门复杂的语言,支持多种编程范式。换句话来说,我们可以使用 C++ 编写多种不同风格的程序来。下面介绍几种 C++ 支持的编程范式:
-  
 
   Structural Programming 结构化编程 
  
 
 - 任何函数都可以直接访问所有数据,数据是完全暴露的。 Object-Oriented Programming 面向对象编程
 - 对象应该是封装起来的受保护的,对象里面的数据是不被别人直接访问的。对象通过接口(Interface)来和外界打交道。 Generic Programming 泛型编程
 - 在 C++ 中,泛型编程通常使用模板实现。这个时候,"类型"(type)成为了模板的参数。 Functional Programming 函数式编程
 - 在 C++ 中,函数式编程通常使用 Lambda 表达式实现。它将计算机运算视为函数运算,并且避免使用程序状态以及易变对象。它是面向数学的抽象,将计算描述为一种表达式求值。其实,函数式程序就是一个表达式。
 
3、语言演化与标准
本门课程要介绍的 C++ 是 C++11 之后的 C++,在此之前,高级编程语言已经经历了长足的发展。如下是部分高级语言之间的演化关系:
- 
  C++ 标准发布时间 
 
 - 请参阅《 现代C++基本介绍》
 
本课程主要在 C++11、C++14、C++17 三代标准的基础之上介绍 C++ 的特性。
4、C++ 开发工具
C++ 作为一门编译型语言,通常需要考虑如下几类开发工具:
- Editor 编辑器
 - Compiler 编译器
 - Linker 链接器
 
当然,如果嫌麻烦的话可以直接使用 IDE (Integrated Developing Environment) 集成开发环境。
下面是一些推荐的 IDE:
- Visual Studio
 - Eclipse CDT + Gcc
 - Visual Studio Code + Gcc/Clang
 - XCode (Mac)
 
有关几款 IDE 的使用介绍,请参考崔毅东老师的教学视频,本文不再花大篇幅阐述:
- Visual Studio 介绍(🧭 第1单元 第03节)
 - Eclipse 介绍(🧭 第1单元 第04节 1.2演示)
 
相关工具的安装教程,请参考崔毅东老师的教学视频,本文不再花大篇幅阐述:
- 安装 MinGW-W64 和 Msys2 工具(🧭 第1单元 第04节 2.2演示、3.2演示)
 
4.1、在 Eclipse 中配置 GCC 编译器
请参考崔毅东老师的教学视频(🧭 第1单元 第04节 4.2演示)
4.2、Eclipse 工程和工作空间
请参考崔毅东老师的教学视频(🧭 第1单元 第04节 4.3演示)
Q:如何学习 C++?
A:Practice! 实践!
参考书目
-  
适用于无任何基础的初学者:
- 《Introduction to Programming with C++》(3rd Ed.), Y.Daniel Liang

 - 《C++ 程序设计》(第3版),梁勇

 
 - 《Introduction to Programming with C++》(3rd Ed.), Y.Daniel Liang
 
-  
适用于有恒心的读者:
- 《C++ Primer》(5rd Ed.), Stanley B.Lippman等

 
 - 《C++ Primer》(5rd Ed.), Stanley B.Lippman等
 
-  
适用于已入门的读者:
- 《Thinking in C++》(2nd Ed.), Volume 1, Bruce Eckel

 
- 《Essential C++》, Stanley B.Lippman

 
 - 《Thinking in C++》(2nd Ed.), Volume 1, Bruce Eckel
 
-  
适用于当字典:
- 《The C++ Programming language》, Bjarne Stroustrup

 
 - 《The C++ Programming language》, Bjarne Stroustrup
 
-  
适用于课后拓展:
- 《The C++ Standard Library》, Nicolai M. Josuttis

 
- 《Inside C++ Object Model》, Stanley B.Lippman

 
 - 《The C++ Standard Library》, Nicolai M. Josuttis
 










