![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++ primer
Mint2yx4
这个作者很懒,什么都没留下…
展开
-
C++ primer 第五版个人笔记 第十六章 模板与泛型编程
16.1 定义模板模板定义以关键字template开始,后跟一个模板参数列表,以逗号分隔,可以传一个或多个模板参数(T1,T2),模板参数列表不能为空; 编译器用推断出的模板参数来生成一个版本的函数叫做实例化,生成的版本叫做模板的实例; 模板类型参数前面必须使用关键字class或typename,在同一个模板参数列表中两个关键字可以混合使用,没有什么不同; 非类型模板参数的模板实参必须是常量表达式; inline或constexpr的函数模板中,inline和constexpr关键字说明符放在模原创 2020-05-16 13:12:50 · 221 阅读 · 0 评论 -
C++ primer 第五版个人笔记 第十五章 面向对象程序设计
15.1 OOP概述派生类通过使用类派生列表明确指出它是从哪一个(些)基类继承而来的;形式是,首先是一个冒号,后面紧跟以逗号分隔的基类列表,其中每个基类前面可以有访问说明符; class Bulk_quote: public Quote, protect Quote1{} 派生类必须在其内部对所有重新定义的虚函数进行声明,派生类可以在这样的函数前加上virtual关键字,但不是必须的, C++11新标准允许派生类显式地著名它将使用哪个成员函数来改写基类的虚函数,具体措施是在该函.原创 2020-05-12 20:52:12 · 297 阅读 · 0 评论 -
C++ primer 第五版个人笔记 第十四章 重载运算与类型转换
14.1 基本概念除了重载的函数调用运算符operator()外,其他重载运算符不能含有默认实参; 当一个重载的运算符是成员函数时,this绑定到左侧运算对象,成员运算符函数的(显式)参数数量比运算对象少一个; 对于一个运算符函数来说,它或者是类的成员或者至少含有一个类类型的参数;不能为内置类型的运算对象改变运算符的含义; 有四个符号(+,-,*,&)既是一元运算符也是二元运算符,都能重载,从参数的数量可以推断到底定义的是那种运算符; 重载的运算符的优先级和结合律与对应的内置运算符保持一原创 2020-05-10 21:01:52 · 217 阅读 · 0 评论 -
C++ primer 第五版个人笔记 第十三章 拷贝控制
拷贝控制在一个类里定义了五种成员函数来控制这些操作,除了本科教材里提到的拷贝构造函数、析构函数,还有拷贝赋值运算符,移动构造函数,移动赋值运算符;如果一个类没有定义所有这些拷贝控制成员,编译器会自动为它定义缺失的操作,但是对于一些类来说,默认定义会导致灾难,因此要明白什么时候需要定义这些操作;13.1 拷贝、赋值与销毁拷贝构造函数的第一个参数必须是引用类型,它在某些情况下会被隐式地使用,因此拷贝构造函数通常不应该是explicit的; 拷贝初始化不仅在使用=定义变量时会发生,还有三种情况,(本科.原创 2020-05-09 21:30:21 · 254 阅读 · 0 评论 -
C++ primer 第五版个人笔记 第十二章 动态内存
程序用堆来存储动态分配的对象(即那些在程序运行时分配的对象),动态对象的生存期由程序来控制,当其不再使用时,我们的代码必须显式地销毁他们;12.1 动态内存与智能指针C++中动态内存的管理是通过一对运算符new和delete来完成的,new在动态内存中为对象分配空间并返回一个指向该对象的指针,delete接受一个动态对象的指针并销毁该对象释放与之关联的内存; 新标准库提供两种智能指针管理...原创 2020-05-07 22:17:39 · 170 阅读 · 0 评论 -
C++ primer 第五版个人笔记 第十一章 关联容器
11.1 使用关联容器关联容器map为空时,新创建一个元素的键对应的值默认初始化为0; 统计一个元素是否在set中有两种写法: myset.find(target)==myset.end(); //未找到myset.count(target)==0; //未找到 对于有序容器(map,multimap,set,multiset),关键字类型必须...原创 2020-05-06 21:48:26 · 192 阅读 · 0 评论 -
C++ primer 第五版个人笔记 第十章 泛型算法
10.1 概述头文件<algorithm>,查找函数find(iterbegin,iterend,val)有三个参数,前两个表示查找范围的迭代器,如果范围中无匹配元素,则返回第二个参数表示搜索失败;count函数可以计算val出现的次数; 泛型算法本身不会执行容器的操作,只会运行于迭代器之上,执行迭代器的操作;算法可能改变容器中元素的值或者移动元素,但永远不会直接添加或删除元素;...原创 2020-05-06 08:31:33 · 199 阅读 · 0 评论 -
C++ primer 第五版个人笔记 第九章 顺序容器
9.1 顺序容器概述顺序容器类型,vector 可变大小数组,支持快速随机访问,在尾部之外的位置插入或删除元素可能很慢 deque双端队列,支持快速随机访问。在头尾位置插入/删除速度很快 list 双向链表,只支持双向顺序访问,在list中任何位置插入/删除操作速度都很快 forward_list 单向链表, 只支持单向顺序访问,在链表任何位置进行插入/删除操作都很快 array 固...原创 2020-05-03 16:08:19 · 204 阅读 · 0 评论 -
C++ primer 第五版个人笔记 第八章 IO库
8.1 IO类IO库主要有三种流类型,普通流、文件流(fstream)、string流(sstream),以及char或宽字符版本; 不能拷贝或对IO对象赋值,因此不能讲形参或函数返回类型设置为流类型,通常以引用方式传递和返回流。读写一个IO对象会改变其状态,因此传递和返回的引用不能是const ofstream out1, out2;out1 = out2; //错误...原创 2020-05-02 14:52:39 · 164 阅读 · 0 评论 -
C++ primer 第五版个人笔记 第七章 类
类的基本思想是数据抽象和封装;数据抽象依赖于接口和实现分离的编程技术;类的接口包括用户所能执行的操作;类的实现包括类的数据成员、负责接口实现的函数体以及定义类所需的各种私有函数;封装实现了类的接口和类的实现的分离;7.1 定义抽象数据类型定义在类内部的函数是隐式的内联函数inline; 成员函数通过一个名为this的额外的隐式参数来访问调用它的对象,当我们用一个成员函数时,用请求...原创 2020-05-01 15:06:11 · 187 阅读 · 0 评论 -
C++ primer 第五版个人笔记 第六章 函数
6.1 函数基础通过调用运算符(call operator)来执行函数。调用运算符的形式是一怼圆括号(),它作用于一个表达式,该表达式是函数或者指向函数的指针;调用表达式的类型就是函数的返回类型。 int function() 是一个调用表达式,是用调用运算符()作用于函数名function(实际上是指针),int类型为调用表达式的类型,也是函数的返回类型; 函数的三要素(返回类型,函数名,...原创 2020-04-29 16:12:14 · 200 阅读 · 0 评论 -
C++ primer 第五版个人笔记 第五章 语句
5.1 简单语句空语句是指一个单独的分号; 正常情况while或者for循环的循环体必须是一条语句,但是逻辑上需要多条语句,因此要用花括号括起来表示复合语句(语句块),语句块不以分号作为结束 while(cin>>s&&s!=sought){} //空块, 等价于空语句; 5.6.3 练习int main(){ int val1, ...原创 2020-04-28 10:28:17 · 178 阅读 · 0 评论 -
C++ primer 第五版个人笔记 第四章 字符串、向量和数组
4.1 基础不同的运算符对运算对象的要求各不相同,有的需要左值有的需要右值,返回值也是如此;一个重要的原则是在需要右值的地方可以用左值来代替,但是不能把右值当成左值(也就是位置)使用。 当一个对象被用作右值的时候,用的是对象的值(内容);当对象被用作左值的时候,用的是对象的身份(在内存中的位置);几个左值右值的例子见121页 int *p; //p的类型是int*decltype(*...原创 2020-04-27 23:11:18 · 129 阅读 · 0 评论 -
C++ primer 第五版个人笔记 第三章 字符串、向量和数组
3.1 命名空间的using声明位于头文件的代码一般来说不应该使用using声明,因为头文件的内容会拷贝到所有引用它的文件中去,对于某些程序来说,不经意间包含了一些名字可能产生始料未及的命名冲突;3.2 标准库类型stringstring定义在命名空间std中,因此程序一开始没有using namespace std;的话使用string要在前面加上std::,否则会出现“未定义的标识符...原创 2020-04-26 20:59:10 · 227 阅读 · 0 评论 -
C++ primer 第五版个人笔记 第二章 变量和基本类型
2.1 基本内置类型wchar_t, char16_t, char32_t 属于算术类型,最小尺寸见30页 long long 在C++ 11中新定义 大多数机器的字节(byte)由8比特(bit)构成,字(word)则由32或64比特(bit)构成,也就是4或者8字节,31页 类型选择几个建议:1明确数值不为负时选无符号类型(unsigned ___); 2 整数运算一般不用shor...原创 2020-04-25 11:08:07 · 211 阅读 · 0 评论 -
C++ primer 第五版个人笔记 第一章 开始
1.1 编写一个简单的C++程序用visual studio 2019运行的,直接打开官方的文件夹中main_only.cpp会提示选择合适的启动项,这里是因为VS2019开始一个程序的调试做了很多的准备,所以要新建一个项目/解决方案,在源文件里添加新CPP文件(或者已有的文件比如main_only.cpp),然后就可以愉快的运行文件了。源文件里含有main函数的文件只能有一个,多余的从项...原创 2020-04-23 17:43:35 · 200 阅读 · 0 评论