
c++ primer
爱学习爱生活的程序猿
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ primer 第15章 面向对象程序设计
文章目录前言OOP:概述继承动态绑定定义基类和派生类定义基类成员函数与继承访问控制与继承定义派生类派生类中的虚函数派生类对象及派生类向基类的类型转换派生类构造函数派生类使用基类的成员继承与静态成员派生类的声明被用作基类的类防止继承的发生类型转换与继承静态类型与动态类型在对象之间不存在类型转换虚函数对虚函数的调用可能在运行时才被解析c++的多态性派生类中的虚函数final和override说明符回避虚函数的机制抽象基类纯虚函数含有纯虚函数的类是抽象基类派生类构造函数只初始化它的直接基类重构访问控制与继承受保护原创 2020-06-21 22:51:43 · 1665 阅读 · 3 评论 -
C++ primer 第14章 操作重载与类型转换
文章目录基本概念直接调用一个重载的运算符函数某些运算符不应该被重载使用与内置类型一致的含义选择作为成员或者非成员输入和输出运算符重载输出运算符<<输出运算符尽量减少格式化操作输入输出运算符必须是非成员函数重载输入运算符>>算术和关系运算符相等运算符关系运算符赋值运算符复合赋值运算符下标运算符递增和递减运算符区分前置和后置运算符显式地调用后置运算符成员访问运算符函数调用运算符含有状态的函数对象类lambda是函数对象表示lambda及相应捕获行为的类标准库定义的函数对象在算法中使用标准原创 2020-05-30 14:55:15 · 420 阅读 · 0 评论 -
C++ primer 第13章 拷贝控制
文章目录前言拷贝、赋值与销毁拷贝构造函数合成拷贝构造函数拷贝初始化和直接初始化拷贝初始化的发生:参数和返回值拷贝初始化的限制拷贝赋值运算符重载赋值运算符合成拷贝赋值运算符析构函数析构函数完成的工作什么时候会调用析构函数合成析构函数代码片段调用几次析构函数根据代码理解 拷贝构造函数、拷贝赋值运算符以及析构函数何时执行三 / 五法则需要析构函数的类也需要拷贝和赋值操作示例代码需要拷贝操作的类也需要赋值操作,反之亦然示例代码没有拷贝构造的类有拷贝构造的类=default阻止拷贝定义删除的函数析构函数不能是删除函数原创 2020-05-27 14:19:03 · 389 阅读 · 0 评论 -
C++ primer 第13章 拷贝控制
文章目录前言拷贝、赋值与销毁拷贝构造函数合成拷贝构造函数拷贝初始化和直接初始化拷贝初始化的发生:参数和返回值拷贝初始化的限制拷贝赋值运算符重载赋值运算符合成拷贝赋值运算符析构函数析构函数完成的工作什么时候会调用析构函数合成析构函数代码片段调用几次析构函数根据代码理解 拷贝构造函数、拷贝赋值运算符以及析构函数何时执行三 / 五法则需要析构函数的类也需要拷贝和赋值操作示例代码需要拷贝操作的类也需要赋值操作,反之亦然示例代码没有拷贝构造的类有拷贝构造的类=default阻止拷贝定义删除的函数析构函数不能是删除函数原创 2020-05-20 15:20:57 · 1253 阅读 · 0 评论 -
C++ primer 第12章 12.3 使用标准库:文本查询程序
文章目录使用标准库:文本查询程序文本查询程序设计数据结构在类之间共享数据自己的文本查询程序书中的文本查询程序使用标准库:文本查询程序我们将实现一个简单的文本查询程序,作为标准库相关内容学习的总结。我们的程序允许用户在一个给定文件中查询单词。查询结果是单词在文件中出现的次数及其所在行的列表。如果一个单词在一行中出现多次,此行只列出一次。行会按照升序输出。文本查询程序设计数据结构我们定义一个保存输入文件的类,将这个类命名为TextQuery,它包含一个vector和一个map。vector用来保存原创 2020-05-16 12:08:12 · 414 阅读 · 0 评论 -
C++ primer 第12章 动态内存
文章目录前言动态内存与智能指针shared_ptr类shared_ptr和unique_ptr都支持的操作shared_ptr独有的操作make_shared 函数shared_ptr的拷贝和赋值shared_ptr自动销毁所管理的对象shared_ptr还会自动释放相关联的内存程序使用动态内存出于以下原因直接管理内存使用new动态分配和初始化对象动态分配的const对象内存耗尽 定位new释放动态内存使用new和delete管理动态内存存在三个常见问题delete之后重置指针值智能指针和new对比sha原创 2020-05-13 21:03:10 · 1007 阅读 · 0 评论 -
C++ primer 第11章 关联容器
文章目录使用关联容器map示例关联容器概述定义关联容器关联容器值初始化multimap和multiset关键字类型的要求pair类型pair上的操作关联容器操作关联容器额外的类型别名关联容器迭代器map迭代器set迭代器关联容器和算法添加元素向map添加元素检测insert的返回值使用insert代替下标操作写单词计数程序删除元素map的下标操作访问元素multimap查找元素代码示例一:coun...原创 2020-05-04 17:43:22 · 869 阅读 · 0 评论 -
C++ primer 第10章 泛型算法
文章目录概述findcount初识泛型算法只读算法只读算法accumulate只读算法equal写容器元素的算法算法fill算法fill_nback_inserter算法copy算法replace replace_copy重排容器元素的算法sortuniqueunique_copy定制操作向算法传递函数谓词算法stable_sort算法partitionlambda表达式lambda介绍算法fi...原创 2020-05-03 18:06:12 · 1776 阅读 · 0 评论 -
C++ primer 第9章 顺序容器
文章目录顺序容器类型确定使用哪种顺序容器容器库概览容器操作迭代器迭代器支持的所有操作迭代器支持的所有运算迭代器范围对构成范围的迭代器的要求标准库迭代器范围左闭右开的三种性质容器定义和初始化将一个新容器创建为另一个容器的拷贝将array拷贝到vector中的代码与顺序容器大小相关的构造函数标准库array具有固定大小赋值和swap测试swap的代码关系运算符顺序容器的特有操作向顺序容器添加元素容器元...原创 2020-04-30 18:18:06 · 748 阅读 · 0 评论 -
C++ primer 第8章 IO库
文章目录IO库类型和头文件IO对象无拷贝或赋值IO流的条件状态文件输入输出ifstream 示例ofstream 示例文件模式以out模式打开文件会丢弃已有数据每次调用open时都会确定文件模式ofstream 保留源文件 追加数据 示例string流istringstream示例ostringstream示例IO库类型和头文件为了支持不同种类的IO处理操作,标准库定义了一些IO类型。ios...原创 2020-04-26 16:59:02 · 200 阅读 · 0 评论 -
C++ primer 第7章 类
成员函数的声明必须在类的内部,定义则既可以在类的内部,也可以在类的外部。作为接口组成部分的非成员函数,它们的定义和声明都在类的外部。类可以允许其他类或者函数访问它的非公有成员,方法是令其他类或函数成为它的友元。如果类想把一个函数作为它的友元,只需要增加一条以friend关键字开始的函数声明语句即可。友元声明只能出现在类定义的内部,但是在类内出现的具体位置不限。友元不是类的成员,不受所在区域访...原创 2020-04-19 11:36:32 · 174 阅读 · 0 评论