C++ Primer 第五版
文章平均质量分 90
更学习笔记关注 wx公众号: cpp学习笔记
举个栗子2
喜欢唱跳rap编程, 更多笔记关注wx公众号(每日更新):cpp读书笔记
展开
-
C++ Primer 第五版 学习总结(十九) 第19章 特殊工具与技术
new。原创 2024-04-23 08:37:28 · 659 阅读 · 0 评论 -
C++ Primer 第五版 学习总结(十八)第18章 用于大型程序的工具
命名空间的定义包含两部分:关键字namespace和随后的命名空间名字。在命名空间名字后面是一系列由花括号包围的声明和定义。能出现在全局作用域中的声明就也能出现在命名空间中。命名空间作用域后面不需要分号结束。和其他名字一样,命名空间的名字也必须在定义它的作用域内保持唯一。命名空间可以定义在全局作用域内,也可以定义在其他命名空间中,但是不能定义在函数或类的内部。每个命名空间都是一个作用域,不同命名空间内可以有相同名字的成员。原创 2024-04-23 08:36:19 · 637 阅读 · 0 评论 -
C++ Primer 第五版 学习总结(十七) 第17章 标准库特殊设施
是类似的模板,定义在头文件中。与不同,可以有任意数量的成员。如果希望将一些数据组合成单一对象,但又不想定义新数据结构时,可以使用(“快速而随意”的数据结构)。定义时需要指定每个成员的类型。创建对象时,可以使用的默认构造函数,它会对每个成员进行值初始化。或者给每个成员提供初始值。包含初始值的构造函数是的,因此必须使用直接初始化语法。类似,函数可以生成对象。的类型由初始值决定。可以使用访问的成员。是一个函数模板,使用时必须指定一个显式模板实参,表示要访问的成员索引。传递给一个实参后,会返回其指定成员的引用。原创 2024-04-23 08:30:25 · 976 阅读 · 0 评论 -
C++ Primer 第五版 学习总结(十六) 第16章 模板与泛型编程
函数模板可以用来生成针对特定类型的函数版本。模板定义以关键字template开始,后跟一个模板参数列表(template parameter list)。模板参数列表以尖括号<>包围,内含用逗号分隔的一个或多个模板参数(template parameter)。定义模板时,模板参数列表不能为空。模板参数表示在类或函数定义中用到的类型或值。当使用模板时,需要显式或隐式地指定模板实参(template argument),并将其绑定到模板参数上。原创 2024-04-23 08:29:13 · 527 阅读 · 0 评论 -
C++ Primer 第五版 学习总结(十五) 第15章 面向对象程序设计
基类通常都应该定义一个虚析构函数,即使该函数不执行任何实际操作也是如此。除构造函数之外的任何非静态函数都能定义为虚函数。virtual关键字只能出现在类内部的声明语句之前而不能用于类外部的函数定义。如果基类把一个函数声明为虚函数,则该函数在派生类中隐式地也是虚函数。成员函数如果没有被声明为虚函数,则其解析过程发生在编译阶段而非运行阶段。派生类能访问基类的公有成员,不能访问私有成员。如果基类希望定义外部代码无法访问,但是派生类对象可以访问的成员,可以使用受保护的(protected)访问运算符进行说明。原创 2024-04-22 22:57:33 · 668 阅读 · 1 评论 -
C++ Primer 第五版 学习总结(十四)第14章 重载运算与类型转换
标准库在头文件functional中定义了一组表示算术运算符、关系运算符和逻辑运算符的类,每个类分别定义了一个执行命名操作的调用运算符。这些类都被定义为模板的形式,可以为其指定具体的应用类型(即调用运算符的形参类型)。关系运算符的函数对象类通常被用来替换算法中的默认运算符,这些类对于指针同样适用。});});});原创 2024-04-22 22:56:02 · 899 阅读 · 0 评论 -
C++ Primer 第五版 学习总结(十三) 第13章 拷贝控制
析构函数释放内存前应该判断是否还有其他对象指向这块内存。delete ps;delete use;++*rhs.use;delete ps;delete use;i = rhs.i;原创 2024-04-22 22:54:40 · 646 阅读 · 0 评论 -
C++ Primer 第五版 学习总结(十二) 第12章 动态内存
程序用堆(heap)来存储动态分配(dynamically allocate)的对象。动态对象的生存期由程序控制。原创 2024-04-22 22:53:47 · 239 阅读 · 0 评论 -
C++ Primer 第五版 学习总结(十一)第11章 关联容器
定义map时,必须指定关键字类型和值类型;定义set时,只需指定关键字类型。初始化map时,提供的每个键值对用花括号{}包围。// emptymap和set中的关键字必须唯一,multimap和multiset没有此限制。原创 2024-04-22 22:52:46 · 687 阅读 · 0 评论 -
C++ Primer 第五版 学习总结(十)第10章 泛型算法
大多数算法都定义在头文件algorithm中,此外标准库还在头文件numeric中定义了一组数值泛型算法。一般情况下,这些算法并不直接操作容器,而是遍历由两个迭代器指定的元素范围进行操作。find函数将范围中的每个元素与给定值进行比较,返回指向第一个等于给定值的元素的迭代器。如果无匹配元素,则返回其第二个参数来表示搜索失败。迭代器参数令算法不依赖于特定容器,但依赖于元素类型操作。泛型算法本身不会执行容器操作,它们只会运行于迭代器之上,执行迭代器操作。原创 2024-04-22 22:51:02 · 539 阅读 · 0 评论 -
C++ Primer 第五版 学习总结(九)第9章 顺序容器
将一个容器初始化为另一个容器的拷贝时,两个容器的容器类型和元素类型都必须相同。传递迭代器参数来拷贝一个范围时,不要求容器类型相同,而且新容器和原容器中的元素类型也可以不同,但是要能进行类型转换。C++11允许对容器进行列表初始化。定义和使用array类型时,需要同时指定元素类型和容器大小。对array进行列表初始化时,初始值的数量不能大于array的大小。如果初始值的数量小于array的大小,则只初始化靠前的元素,剩余元素会被值初始化。如果元素类型是类类型,则该类需要一个默认构造函数。可以对。原创 2024-04-22 22:49:19 · 231 阅读 · 0 评论 -
C++ Primer 第五版 学习总结(八)第8章 IO库
istream:输入流类型,提供输入操作。ostream:输出流类型,提供输出操作。cinistream对象,从标准输入读取数据。coutostream对象,向标准输出写入数据。cerrostream对象,向标准错误写入数据。>>运算符:从istream对象读取输入数据。<<运算符:向ostream对象写入输出数据。getline函数:从istream对象读取一行数据,写入string对象。原创 2024-04-22 22:48:33 · 324 阅读 · 0 评论 -
C++ Primer 第五版 学习总结(七)第7章 类
Sales_dataSales_data类的作者通常会定义一些辅助函数,尽管这些函数从概念上来说属于类接口的组成部分,但实际上它们并不属于类本身。return is;return os;如果非成员函数是类接口的组成部分,则这些函数的声明应该与类放在同一个头文件中。一般来说,执行输出任务的函数应该尽量减少对格式的控制。原创 2024-04-22 22:47:04 · 346 阅读 · 0 评论 -
C++ Primer 第五版 学习总结(六)第6章 函数
典型的函数定义包括返回类型(return type)、函数名字、由0个或多个形式参数(parameter,简称形参)组成的列表和函数体(function body)。函数执行的操作在函数体中指明。程序通过调用运算符(call operator)来执行函数。调用运算符的形式之一是一对圆括号(),作用于一个表达式,该表达式是函数或者指向函数的指针;圆括号内是一个用逗号隔开的实际参数(argument,简称实参)列表,用来初始化函数形参。调用表达式的类型就是函数的返回类型。原创 2024-04-22 22:45:55 · 408 阅读 · 0 评论 -
C++ Primer 第五版 学习总结(五)第5章 语句
如果在程序的某个地方,语法上需要一条语句但是逻辑上不需要,则应该使用空语句(null statement)。空语句中只含有一个单独的分号;。使用空语句时应该加上注释,从而令读这段代码的人知道该语句是有意省略的。多余的空语句并非总是无害的。复合语句(compound statement)是指用花括号括起来的(可能为空)语句和声明的序列。复合语句也叫做块(block),一个块就是一个作用域。在块中引入的名字只能在块内部以及嵌套在块中的子块里访问。原创 2024-04-22 22:44:11 · 389 阅读 · 0 评论 -
C++ Primer 第五版 学习总结(四)第4章 表达式
表达式(expression)由一个或多个运算对象(operand)组成,对表达式求值将得到一个结果(result)。字面值和变量是最简单的表达式,其结果就是字面值和变量的值。原创 2024-04-22 22:41:34 · 779 阅读 · 0 评论 -
C++ Primer 第五版 学习总结(三)第3章 字符串、向量和数组
stringvector迭代器的作用和下标类似,但是更加通用。所有标准库容器都可以使用迭代器,但是其中只有少数几种同时支持下标运算符。数组是一种复合类型,声明形式为a[d],其中a是数组名称,d是数组维度(dimension)。维度必须是一个常量表达式。默认情况下,数组的元素被默认初始化。定义数组的时候必须指定数组的类型,不允许用auto关键字由初始值列表推断类型。如果定义数组时提供了元素的初始化列表,则允许省略数组维度,编译器会根据初始值的数量计算维度。原创 2024-04-22 22:39:24 · 309 阅读 · 0 评论 -
C++ Primer 第五版 学习总结(二)第2章 变量和基本类型
变量定义的基本形式:类型说明符(type specifier)后紧跟由一个或多个变量名组成的列表,其中变量名以逗号分隔,最后以分号结束。定义时可以为一个或多个变量赋初始值(初始化,initialization)。初始化不等于赋值(assignment)。初始化的含义是创建变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦除,再用一个新值来替代。用花括号初始化变量称为列表初始化(list initialization)。原创 2024-04-22 22:34:40 · 293 阅读 · 0 评论 -
C++ Primer 第五版 学习总结(一)第1章 开始
C++包含两种注释,注释界定符。通常用于多行注释,而双斜杠。通常用于单行或半行注释。原创 2024-04-22 22:28:57 · 125 阅读 · 0 评论