前 言 1998年C++标准委员会发布了第一个C++标准C++ 98;2003年发布了C++标准第2版C++ 03,它是C++ 98的修订版。随着软件技术的进步,2011年发布了C++ 11新标准,这是一次最剧烈的修订,核心语言发生了巨大的变化,引入了大量的新特性。之后,于2014年和2017年又分别发布了修订版。 随着C++ 11新标准的颁布和编译器厂商对标准的支持,高等学校开设的C++程序设计课程逐渐采用新标准进行教学。微软公司的Visual C++ 2017编译器全面支持C++ 11新标准,本书的所有例程均在该编译器上编译通过。 本书采用C++ 11新标准介绍C++语言,以面向对象技术为核心,兼顾模板和泛型编程。为强化基本概念的掌握,利用调试跟踪工具剖析关键知识点,化抽象为直观。为提升编程能力,尽量在程序中讲编程。全书有160个例程,可供初学者学习和模仿。 本书共有15章,大致可分为5个部分:程序基础(第1~4章)、面向对象技术(第5~8章)、模板与标准库(第9~12章)、C++/CLI与窗体应用程序设计(第13~14章)、课程设计样例(第15章)。 各章节主要内容如下。 第1章:C++语言的发展历程和特点,VC++ 2017编程工具的用法。 第?2?章:数据类型,变量与常量,运算与表达式,数组,指针,枚举,结构体与联合,常用标准库类型string、vector和map。 第?3?章:算法与流程图,程序基本控制结构与语句,异常处理基础,控制强输入与输出。 第?4?章:函数基础,3种参数传递方式,函数返回类型,函数重载,内联函数,constexpr函数,递归函数,函数指针,Lambda函数,C++内存模型,全局与局部变量,作用域与可见性,存储类型和生存期。 第?5?章:类与对象,构造函数,析构函数,this指针,类中静态成员,类的友元,运算符重载函数,多文件结构与编译预处理。 第?6?章:动态内存的分配与释放,智能指针,移动构造函数,移动赋值,合成的成员函数。 第?7?章:派生类,继承方式与访问控制,同名覆盖与隐藏,派生类与基类的赋值兼容,派生类的构造与析构,多重继承,虚基类。 第?8?章:多态性,虚函数,动态绑定,override与final修饰符,虚析构函数,纯虚函数,抽象类。 第?9?章:函数模板,完美转发,类模板,别名模板,变量模板,嵌套类模板,模板特列化,可变参数模板。 第?10?章:顺序容器,关联容器,无序容器,迭代器,迭代器适配器,泛型算法,函数对象。 第?11?章:流的格式控制,输入流,输出流,文件操作,字符串流。 第?12章:异常处理,noexcept说明,异常类,命名空间。 第?13?章:C++/CLI的基本数据类型,C++/CLI的句柄、装箱与拆箱,C++/CLI的字符串与数组,C++/CLI的类与属性,C++/CLI的多态与接口,C++/CLI的模板与泛型,C++/CLI的异常与枚举,委托与事件。 第?14?章:鼠标坐标的显示窗体程序,倒计时器窗体程序,计算器窗体程序,循环队列演示窗体程序,随机运动的小球窗体程序。 第15章:课程设计参考例程:通讯录管理系统的设计与实现。 由于作者水平有限,书中不足之处在所难免,敬请读者不吝批评指正。 编 者