
C++ Primer 第5版学习总结
主要通过对C++ Primer 第5版各章节的学习总结来突出C++中需要特别注意的特性。
focus_best
这个作者很懒,什么都没留下…
展开
-
C++ Primer学习总结 第15章 面向对象程序设计
第15章 面向对象程序设计1. 构造基类和派生类。其中A类是基类,B类是派生类。派生类的构造函数必须重新写过,不能继承。(因为毕竟两个类的类名都不一样,不可能构造函数继承)只继承其他的成员函数和成员变量。派生类可以覆盖基类的虚函数,但是也可以选择不覆盖(即直接使用父类的函数版本)比例A类的print_1()虚函数就没有被覆盖。基类的静态成员:如果基类有一个静态成员原创 2015-03-10 09:15:03 · 1328 阅读 · 2 评论 -
C++ Primer学习总结 第14章 操作重载与类型转换
第14章 操作重载与类型转换1. 可以直接调用重载的运算符函数.但是如果对于一个运算符比如+号,既有重载的成员函数,又有重载的非成员函数,那么此时如果直接使用+号,那么就会出现错误. 因为编译器不知道要调用那个运算符. 2. 逗号,运算符逻辑与&&运算符逻辑或||运算符不建议重载.因为上述3种运算符本身是有求值顺序和短路求值特性原创 2015-03-10 09:08:08 · 1350 阅读 · 0 评论 -
C++ Primer学习总结 第13章 拷贝控制
第13章 拷贝控制1. 什么是拷贝构造函数? P440如果一个类的构造函数的第一个参数是自己类类型的引用, 且所有其他参数都有默认值, 那么这就是一个拷贝构造函数. 2. 拷贝初始化和直接初始化. P441如果初始化的时候使用等号”=”来初始化一个对象, 那么就是拷贝初始化.相反, 如果初始化时, 没有用等号”=”, 那么就是直接初始化.原创 2015-03-09 10:33:57 · 2099 阅读 · 2 评论 -
C++ Primer学习总结 第12章 动态内存
第12章 动态内存1. 申请并使用shared_ptr. P400 2. shared_ptr计数. P402赋值, 拷贝, 向函数传递一个智能指针, 或函数返回一个智能指针都会增加当前智能指针的计数. 3. 不同对象间利用智能指针共享数据的例子. 4. 使用new来动态申请内存. P407默认情况下原创 2015-03-09 10:21:58 · 1273 阅读 · 0 评论 -
C++ Primer学习总结 第11章 关联容器
第11章 关联容器1. 使用map的简单例子:运行结果为: 2. 初始化map和set: 3. set与multiset的区别: 4. 使用map和set时,其元素类型必须是定义了严格弱序的(即定义了号比较的),如果元素类型没有定义 5. pair类型:pair是一个用来生成特定类型的模板. pa原创 2015-03-09 10:14:11 · 1298 阅读 · 0 评论 -
C++ Primer学习总结 第10章 泛型算法
第10章 泛型算法1. find()泛型算法使用示例: 2. 只读算法accumulate:对所给范围的元素求和并返回. 注意accumulate的第3个参数决定着它的返回类型. 即如果第3个参数是double,就算迭代器里都是int,最终还是返回double类型的数. 3. 只读算法equal:比较前两个迭代器表示范围的所有元素是原创 2015-03-09 10:07:33 · 1136 阅读 · 0 评论 -
C++ Primer学习总结 第9章 顺序容器
第9章 顺序容器1. 顺序容器如果有一个只需要容器大小参数的默认构造函数,该函数使用的是元素的默认构造函数来构造每个元素对象,如果该容器的元素没有默认构造函数,那么就不能使用这个容器的该构造函数P294: 2. 容器进行拷贝初始化时,两个容器的元素必须同类型.但是如果列表初始化,或迭代器范围初始化容器,那么只要求列表中元素或迭代器所指元素可以转化为容原创 2015-03-09 09:50:06 · 1056 阅读 · 1 评论 -
C++ Primer学习总结 第8章 IO库
第8章 IO库1. IO类继承关系:2. 查询iostream流状态P280-281V是一个int,当我们输入1, ‘r’,或Ctrl+z 时的输出分别如下:cin.clear()可以清楚所有的错误位,使good()返回true. 3. fstream对文件的读写P284初始创建读入和写出fstream对原创 2015-03-07 01:11:00 · 1499 阅读 · 0 评论 -
C++ Primer学习总结 第7章 类
第7章 类1. 引入const成员函数(C++ Primer P231-232)C++类的常量对象是无法调用非const成员函数的,如果想让常量对象调用某个成员函数,必须声明成const: 2. 一个类的尾后const成员函数如果返回*this,那么其返回类型必然是const类名 & 前面这个const是不能少的.否则无法通过编译.原创 2015-03-07 01:02:27 · 2071 阅读 · 1 评论 -
C++ Primer学习总结 第6章 函数
第6章 函数1. 函数最外层作用域中的局部变量不能使用与函数形参一样的名字,因为它们属于同一个作用域范围. 2. 局部静态变量的生命周期: 在整个程序的执行路径第一次经过对象定义语句时初始化,并且直到整个程序终止时才被销毁,在此期间即使对象所在函数结束执行也不会对它有影响. 3. 如果重载的函数的参数只有顶层const区别,那么原创 2015-03-07 00:48:42 · 1955 阅读 · 1 评论 -
C++ Primer学习总结 第5章 语句
第5章 语句1. switch中的case标签必须是整型常量表达式,不能是变量也不能是非整型:注意第二个case 3.14 在C++11中没错误可以执行,但是在C++98中编译不通过. 2. switch语句的case语句初始化了一个变量时要注意:Case语句不能跳过变量的初始化,可以跳过变量的定义。 3. 范围for语原创 2015-03-07 00:24:03 · 1316 阅读 · 0 评论 -
C++ Primer学习总结 第4章 表达式
第4章 表达式1. decltype作用于左值对象时,返回的是该对象的引用类型. 作用于右值对象时,返回的是该对象的类型.2. 求值顺序.C++中只有&& || ?: 和, 4种运算符是先左后右求值的. 3. 一元正负号运算符作用于数值:会提升当前数值的类型,比如short变成int型 4.原创 2015-03-07 00:17:44 · 1489 阅读 · 0 评论 -
C++ Primer学习总结 第3章 字符串,向量和数组
第3章 字符串,向量和数组1. 如何用string读取一整行内容?用getline(cin,s)即可. 当然getline()也可以用来作为while循环读取输入的判断条件. 2. string与字符串字面值,字符字面值相加由于+法是从左向右运算的,所以只要保证每次两个值相加时,+号左右两边至少有一个是string就行. 3. string原创 2015-03-05 20:22:46 · 1266 阅读 · 1 评论 -
C++ Primer学习总结 第1-2章 变量和基本类型
第1-2章 变量和基本类型1.下面这个语句在C++98和C++11中的输出结果不同.C++98结果:(如果想要更高的精度,可以用%.9lf,输出9位有效数字)C++11结果:结论:printf的%lf在C++11中表示longdouble,所以用中%f就可以输出float和double类型.而printf在C++98中可以用%lf正确原创 2015-03-05 20:12:56 · 1478 阅读 · 1 评论