C++
_Stack__
这个作者很懒,什么都没留下…
展开
-
C++Primer第5版读书笔记(第14章 重载运算与类型转换)
第14章 重载运算与类型转换 14.1 基本概念重载运算符由关键字operator和其后要定义的运算符号组成。重载运算符函数的参数数量与该运算符作用的运算对象数量一样多,一元运算符有一个参数,二元运算符有两个,对于二元运算符来说,左侧运算对象传递给第一个参数,而右侧运算对象传递给第二个参数,除了重载的函数调用运算符operator()之外,其他重载运算符不能含有默认实参。14.8.2 标准库定原创 2017-05-09 17:04:06 · 314 阅读 · 0 评论 -
C++Primer第5版读书笔记(第13章 拷贝控制)
第13章 拷贝控制 13.1 拷贝、赋值与销毁 13.1.1 拷贝构造函数如果一个构造函数的第一个参数是自身类类型的引用,且任何额外参数都有默认值,则此构造函数是拷贝构造函数。class Foo{ public: Foo();//默认构造函数 Foo(const Foo&);//拷贝构造函数}; 2. 拷贝构造函数在几种情况下都会被隐式原创 2017-05-08 15:52:53 · 364 阅读 · 0 评论 -
C++Primer第5版读书笔记(第12章 动态内存)
第12章 动态内存 12.1 动态内存与智能指针shared_ptr允许多个指针指向同一个对象;unique_ptr则“独占”所指向的对象。标准库还定义了一个名为week_ptr的伴随类,它是一种弱引用,指向shared_ptr所管理的对象,这三种类型都定义在memory头文件中。 只有当括号中仅有单一初始化器时才可以使用auto:auto p1 = new auto(obj); //p原创 2016-04-09 22:25:09 · 521 阅读 · 0 评论 -
C++Primer第5版读书笔记(第11章 关联容器)
第11章 关联容器类型map和multimap定义在头文件map中;set和multiset定义在头文件set中;无序容器则定义在头文件unordered_map和unordered_set中。 //定义形式map<type1,type2> name;set<type> name;11.2 关联容器概述关联容器不支持顺序容器的位置相关的操作,例如push_front或push_back等,原创 2016-04-09 22:24:17 · 482 阅读 · 0 评论 -
C++Primer第5版读书笔记(第10章 泛型算法)
第10章 泛型算法 10.3.2 lambda表达式可调用对象:对于一个对象或一个表达式,如果可以对其使用调用运算符则称为可调用的;可调用对象主要有:函数、函数指针、重载了函数调用运算符的类和lambda表达式。lambda表达式的定义形式:[capture list](parameter list)->return type {function body}/***************原创 2016-03-29 15:15:53 · 417 阅读 · 0 评论 -
C++Primer第5版读书笔记(第15章 面向对象程序设计)
第15章 面向对象程序设计 15.2 定义基类和派生类 15.2.1 定义基类基类通常应该定义一个虚析够函数。任何构造函数之外的非静态函数都可以是虚函数。关键字virtual只能出现在类内部的声明语句之前而不能用于类外部的函数定义。派生类可以访问基类的公有成员,而不能访问私有成员。protected访问权限派生类可以访问但其他对象不能访问。15.2.2 定义派生类派生类通过使用类派生原创 2017-05-11 09:30:02 · 380 阅读 · 0 评论 -
C++Primer第5版读书笔记(第9章 顺序容器)
第9章 顺序容器 9.1 顺序容器概述 选择容器的基本原则: 除非有很好的理由选择其他容器,否则应使用vector;如果程序有很多小的元素,且空间的额外开销很重要,则不要使用list或forward_list;如果程序要求随机访问元素,应使用vector或deque;如果程序要求在容器的中间插入或删除元素,应使用list或forward_list;如果程序需要在头尾位置插入或删除元素,但原创 2016-03-28 20:02:27 · 838 阅读 · 0 评论 -
C++Primer第5版读书笔记(第2章 变量和基本类型)
第I部分 C++基础 第2章 变量和基本类型 2.1.1 算术类型 2.1.2 类型转换1. 当给无符号类型的变量赋值时,如果超出表示范围,结果是初始值对无符号类型表示数值总数去模后的余数,例如,8比特大小的unsigned char可以表示0至255区间内的值,如果赋一个超出该范围的值,则实际的结果是该值对256取模后所得的余数。2. 赋带符号类型一个超出它表示范围的值时,结果是未定义原创 2016-02-25 11:10:22 · 525 阅读 · 0 评论 -
C++Primer第5版读书笔记(第8章 IO库)
第8章 IO库 8.1 IO类 IO对象不能拷贝或对IO对象赋值,读写一个IO对象会改变其状态,因此传递和返回的引用不能是const的。 刷新输出缓冲区:操纵符为endl、flush和ends;endl向缓冲区插入一个回车符,然后刷新缓冲区;flush刷新缓冲区,但不输出任何额外的字符;ends向缓冲区插入一个空字符,然后刷新缓冲区。unitbuf操纵符,如果想在每次输出操作之后都刷新缓冲区原创 2016-03-25 10:25:36 · 415 阅读 · 0 评论 -
C++Primer第5版读书笔记(第7章 类)
C++Primer第5版读书笔记(第7章)原创 2016-03-25 09:41:33 · 527 阅读 · 0 评论 -
C++Primer第5版读书笔记(第6章 函数)
第6章 函数 6.2 参数传递引用传递、值传递、指针传递6.2.6 含有可变形参的函数如果函数的实参数量未知但是全部实参的类型都相同,可以使用initializer_list类型的形参; 省略符形参void foo(parm_list,...);void foo(...);6.3.3 返回数组指针声明一个返回数组指针的函数,也可以使用类型别名完成Type (*function(par原创 2016-03-21 17:38:29 · 338 阅读 · 0 评论 -
C++Primer第5版读书笔记(第5章 语句)
第5章 语句 5.4.3 范围for语句//for(declaration:expression)// statementvector<int> v={0,1,2,3,4,5,6,7,8,9};for(auto &r : v) r *=2;如上如果需对序列中的元素执行写操作,循环变量必须声明成引用类型。5.6 try语句块和异常处理throw表达式异常检测部分使用throw表达式原创 2016-03-21 11:39:29 · 398 阅读 · 0 评论 -
C++Primer第5版读书笔记(第4章 表达式)
第4章 表达式 4.1.1 基本概念小整数类型(如bool、char、short等)通常会被提升成较大的整数类型;赋值运算符需要一个(非常量)左值作为其左侧运算对象,得到的结果也仍然是一个左值。取地址符作用与一个左值运算对象,返回一个指向运算对象的指针,这个指针是一个右值。内置引用运算符、下标运算符、迭代器解引用运算符、string和vector的下标运算符的求值结果都是左值。内置类型和迭原创 2016-02-27 21:26:29 · 591 阅读 · 0 评论 -
C++Primer第5版读书笔记(第3章 字符串、向量和数组)
第3章 字符串、向量和数组3.1 命名空间的using声明using namespace::name3.2.1 定义和初始化string对象#include<string>using std::string;string s1; //默认初始化string s2(s1); //直接初始化,s2为s1的副本string s3=s1;原创 2016-02-26 13:01:33 · 485 阅读 · 0 评论