17. io、file 17.1 C++输入和输出概述 17.1.1 流和缓冲区 C++程序把输入和输出看作字节流 streambuf类为缓冲区提供了内存,并提供了用于填充缓冲区、访问缓冲区内容、刷新缓冲区和管理缓冲区内存的类方法 ios base类表示流的一般特征,如是否可读取、是二进制流还是文本流等: ios类基于ios base,其中包括了一个指向streambuf对象的指针成员; ostream 2024-11-27 c++ > c++ primer plus #c++
16. string类和标准模板库 string类 1. 1.构造字符串 size_type是一个依赖于实现的整型,是在头文件string中定义的。string类将string:: npos定义为字符串的最大长度,通常为unsigned int的最大值。另外,表格中使用缩写NBTS(null-terminated string)来表示以空字符结束的字符串一传统的C字符串。 img 指定分割字符: 123s 2024-11-27 c++ > c++ primer plus #c++
15. 友元、异常和其他 1. 友元 友元类、友元函数、类彼此成为对方的友元 img 共同的友元 img 2. 嵌套类 在另一个类中声明的类 被称为嵌套类,通过提供新的类型类作用域来避免名称混乱。 img 模板中也可以嵌套类 3. 异常 1.调用abort() img img 2.返回错误码 img img 2024-11-27 c++ > c++ primer plus #c++
14. c++中的代码重用 1. 包含对象成员的类 1.1. valaray类简介 使用explicit关闭隐式转换 valarray类是由头文件valarray支持的。顾名思义,这个类用于处理数值(或具有类似特性的类),它支持诸如将数组中所有元素的值相加以及在数组中找出最大和最小的值等操作。valarray被定义为一个模板类,以便能够处理不同的数据类型。 valaray类的方法: img C++包含 2024-11-27 c++ > c++ primer plus #c++
13. 类继承 13.2 继承: is-a关系 c++三种继承方式: 公有继承 建立一种is-a关系,即派生类对象也是一个基类对象,可以对基类对象执行的任何操作,也可以对派生类对象执行 保护继承 私有继承 13.3 多态公有继承 在派生类中重新定义基类的方法。 使用虚方法,使用关键词virtual 基类声明了一个虚析构函数,为了确保释放派生对象时,按正确的顺序调用析构函数, 2024-11-27 c++ > c++ primer plus #c++
10. 对象和类 类的构造函数和析构函数 类的数据成员名使用m_前缀或者_后缀 const成员函数 我们知道,在C++中,若一个变量声明为const类型,则试图修改该变量的值的操作都被视编译错误。例如, const char blank = ‘’; blank = ‘’; // 错误 面向对象程序设计中,为了体现封装性,通常不允许直接修改类对象的数据成员。若要修改类对象,应调用公有成 2024-11-27 c++ > c++ primer plus #c++
9. 内存模型和名称空间 1. 存储特续性、作用域和链接性 cin()是面向单词的输入,即使用空白(空格、制表符和换行符)来确定结束为止,将其传递给接收的变量或数组,空白之后输入的字符仍留在输入队列中,下次读取输入时,继续读取。 cin.getLine(name,ArSize)是面向行的输入,该函数每次读取一行,它通过换行符来确定行尾,但不保存换行符。相反,在存储字符串时,它用空字符替换换行符。 cin.get(na 2024-11-27 c++ > c++ primer plus #c++
8. 函数探幽 函数模板 隐式实例化、显式实例化和显式具体化统称为具体化(specialization)。它们的相同之处在于,它们表示的都是使用具体类型的函数定义,而不是通用描述。 引入显式实例化后,必须使用新的语法一在声明中使用前缀template和template<>,以区分显式实例化和显式具体化。通常,功能越多,语法规则也越多。下面的代码片段总结了这些概念: img 然而,有 2024-11-27 c++ > c++ primer plus #c++
15. STL-常用算法 img 5.1 常用遍历算法 img for_each for_each(iterator beg, iterator end,_func) 1234567891011121314151617181920212223242526void print01(int val){ cout << val << " &quo 2024-11-27 c++ > c++ 黑马 #c++