C++简介

C++特点

本栏内容基于《C++ Priner Plus》(Sixth Edition)(Stephen Prata)笔记编写,同时我也会补充我在《C++ Primer》(Fifth Edition)(Stanley B.Lippman\Josee Lajoie\Barbara E.Moo)的相关学习内容,补充内容会在之后的重新发布的文章内容中显示,第一次发布均为《C++ Primer Plus》的学习笔记内容

  • 该语言容纳了好几种编程范式:面向对象编程、泛型编程和传统的过程化编程

  • C++在C语言基础上新增的特性:

  • 类和对象

  • 继承

  • 多态、虚函数和RTTI(运行阶段类型识别)

  • 函数重载

  • 引用变量

  • 泛型(独立于类型的)编程,这种技术是由模板和标准模板库(STL)提供的

  • 处理错误条件的异常机制

  • 管路函数、类和变量名的名称空间

直接上目录吧(敲这篇blog的时候在火车上,所以没信号,本来目录也可以直接截屏的,但是没网络,插不了图片链接,我就直接一个一个字的敲了,就当练习打字了,不过自己手动敲一遍,让我对书本内容结构更加熟悉了,所有付出都有收获):

  • 第一章 预备知识:本章介绍Bjame Stroustrup 如何通过在C语言的基础上添加对面向对象编程的支持,来创造C++编程语言。讨论面向过程语言(如C语言)与面向兑现该语言(如C语言)与面向对象语言(C++)之间的区别。您将了解ANSI/ISO在指定C++标准方面所做的工作。本章还讨论了创建C++程序的技巧,据介绍了当前几种C++编译器使用的方法。最后,本章还将介绍——C++的编程模块。
  • 第二章 开始学习C++:本章介绍创建简单C++程序的步骤。您可以学习到main()函数扮演的较深色以及C++程序使用的一些语句。您将使用预定义的cout和cin对象来实现程序输出和输入,学习如何创建和使用变量。最后,本章还将介绍函数——C++的编程模块。
  • 第三章 处理数据:C++提供了内置类型来存储两种数据:整数(没有小数的数字)和浮点数(带小数的数字)。为满足程序员的各种需求。C++为每一种数据都提供了几个类型。本章将要讨论这些类型,八廓创建变量和编写各种类型的常量。另外,还将讨论C++是如何处理不同类型之间隐式和显式转换的。
  • 第四章 复合类型:C++让程序员能够使用基本的内置类型来创建更复杂的类型。最高级的形式是类,这集那个在第九章~第十三章讨论。本章讨论其他形式,包括数组(存储多个同类型的值)、结构(存储多个不同类型的值)、指针(标识内存位置)。您还将学习如何创建和存储文本字符串以及如何使用C-风格字符数组和C++string类来处理文本输入和输出。最后,还将学习C++处理内存分配的一些方法,其中包括用于显示地管理内存的new和delate运算符。
  • 第五章 训话和关系表达式:程序经常需要执行重复性操作,为此C++提供了3种循环结构:for循环、while循环和do while循环。这些循环必须知道何时终止。C++的运算关系符使程序员能够创建测试来引导循环。本章还将介绍如何创建逐字符地读取和处理输入人的循环。最后,您将学习如何创建二维数组以及如何使用嵌套循环来处理它们。
  • 第六章 分支语句和逻辑运算符:如果程序可以根据实际情况调整执行,我们就说程序能够智能地行动。在本章,您将了解到如何使用if、if else和switch语句及条件运算符来控制程序流程,学习如何使用逻辑运算符来表达决策测试。另外,本章还将介绍确定字符关系(如测试字符使竖子还是非打印字符)地函数库尺寸cctype。最后,还将简要地介绍文件输入\输出。
  • 第七章 函数——C++的编程模块:函数使C++的基本编程不见。本章将重点介绍C++函数与C函数共同的特性。具体地说,您将学习复习函数定义的通用格式,了解函数原型是如何提高程序可靠性的。同时,还将学习如何编写函数来处理数组、字符串和结构。还要学习有关递归的知识(即函数在什么情况下调用自身)以及如何用它来实现分而治之的策略。最后将介绍函数指针,它使程序员能够通过函数参数来命令函数使用另一个函数。
  • 第八章 函数探幽:本章将探索C++中函数新增的特性。您将学习内联函数,它可以提高函数的执行速度,但会增加程序的长度;还将使用引用变量,它们提供了另一种将信息传递给函数的方式。默认参数使函数能够自动为函数调用中省略的函数参数提供值。函数重载使程序员能够指定相关函数族的设计。
  • 第九章 内存模型和名称空间:本章讨论如何创建多文件程序,介绍分配内存的各种方式、管理内粗的各种方式以及作用域、链接、名称空间,这些内容决定了变量在程序的哪些部分是可见的。
  • 第十章 对象和类:类是用户定义的类型,对象(如变量)是类的实例。本章介绍面向对象编程和类设计。对象声明描述的是存储在对象中的信息以及可对对象执行的操作(类方法)。对象的某些组成部分对于外界来说是可见的(公有部分),而某些部分却是隐藏的(私有部分)。特殊的类方法(构造函数和解析函数)在对象创建和释放时发挥作用。在本章中,您将学习所有这些内容以及其他类知识,了解如何使用类来实现ADT,入栈。
  • 第十一章 使用类:在本章:在本章中,您将深入了解类。首先了解运算符重载,它使程序员能够定义与类对象一起使用的运算符,如+。还将学习友元函数(友元函数使声明在类中的的,作用是可以反问该类的私有成员(成员函数和成员函数)。其中,友元函数的声明跟平常函数基本一样,只需要在函数声明前加一个friend就行,友元函数的定义跟普通函数定义一模一样(不需要指定类作用域运算符))。这些函数可以访问外部世界不可访问的类数据。同时还将了解一些构造函数和重载运算符成员函数是如何被用来管理类类型转换的。
  • 第十二章 类和动态内存分配:一般来说,让类成员指向动态分配的内存很有用。如果程序员在类构造函数中使用new来分配动态内存,就有责任提供适当的结构函数,定义显示拷贝构造函数和显示赋值运算符。本章介绍了在程序员没有提供显示定义时,将如何隐式地生成成员函数以及这些成员函数的行为。您还将通过使用对象指针,了解队列模拟问题,扩充类方面的知识。
  • 第十三章 类继承:在面向对象编程中,继承是功能最强大的特性之一,通过继承,派生类可以继承类的特性,可宠用基类代码。本章讨论公有继承,这种继承模拟了is-a关系,即派生对象是基对象的特例。例如,物理学家是科学家的特例。有些继承关系是多态的,这意味着相同的方法名称可能导致依赖于对象类型的行为。要实现这种行为,需要使用一种新的成员函数——虚函数。有时,使用抽象基类是实现继承关系的最佳方式。本章讨论了这些问题,说明了公有继承在什么情况下合适,在说明情况下不合适。
  • 第十四章 C++中的代码重用:公有继承只是代码重用的方式之一。本章将介绍其他几种方式。如果一个类包含了另一个类的对象,则称为包含。包含可以用来模拟has-a关系,其中一个类包含另一个类的对象,例如,汽车有马达。也可以使用私有继承和保护继承来模拟这种关系。本章说明了各种方法之间的区别。同时,您还将学习类模板,它让程序员能够使用泛型定义类,然后使用模板根据具体类型创建特定的类。例如,栈模板使程序员能够创建整数栈或字符串栈。最后,本章还将介绍多重公有继承,使用这种方式,一个类可以从多个类派生而来。
  • 第十五章 友元、异常和其他:本章扩展了对友元的讨论,讨论了友元类和友元成员函数。然后从异常开始介绍了C++的几项新特性。异常为处理程序异常提供了一种机制,如函数参数值不正确或内存耗尽等。您还将学习RTTI,这种机制用来确定对象类型。最后,本章还将介绍一种更安全的方法啦替代不受限制的强制类型转换。
  • 第十六章 string类和标准模板库:本章讨论C++语言中新增的一些类库。对于传统的C-风格字符串来说,string类是一种方便且功能强大的替代方式。auto_ptr类帮助管理动态分配的内存。STL提供了几种类容器(包括数组、队列、链表、集合和映射)的模板表示。它还提供了高效的泛型算法库,这些算法可用于STL容器,也可用于常规数组。模板类valarray为数值数组提供了支持。
  • 第十七章 输入、输出和文件:本章首先复习C++I/O,并讨论如何格式化输出。您将要学习如何使用类方法来确定输入或输出流的状态,了解输入类型是否匹配或是否检测到了文件尾。C++使用继承来派生用于管理文件输入和输出的类。您将学习如何打开文件,以进行输入和输出,如何在文件中追加数据,如何使用二进制文件,如何获得对文件的随机访问权。最后,还将学习如何使用标准的I/O方法来读取和写入字符串。
  • 第十八章 探讨C++新标准:本章首先复习之前介绍过的几项C++11新功能,包括新类型、统一的初始化语法、自动类型推断、新的智能指针以及作用域内枚举。然后,讨论新增的右值引用类型以及如何使用它来实现移动语义。接下来,介绍了新增的类功能、lambda表达式和可变参数模板。最后,概述了众多其他的新功能。
    (在此我觉得有必要把这个原书截图在此给大家分享一下,建议认真看看)
    C++简介_第1张图片C++简介_第2张图片

你可能感兴趣的:(C++学习栏)