![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++primer
文章平均质量分 84
xflame
这个作者很懒,什么都没留下…
展开
-
第1章 入门
1.1 编写简单的C++程序(p2) main函数,返回0值表明程序成功执行完毕。 大多数系统中,main函数的返回值是一个状态指示器。返回值0往往表示main函数成功执行完毕。任何其他非零的返回值都有操作系统定义的含义。通常非零返回值表明有错误出现。 1.2.1 标准输入与输出对象(p5) ostream中除了cin和cout外,还有原创 2013-08-07 14:01:37 · 513 阅读 · 0 评论 -
第15章 面向对象编程
15.1、面向对象编程:概述 在C++中,多态性仅用于通过继承而相关联的类型的引用或指针,通过基类的引用(或指针)调用虚函数时,发生动态绑定。 15.2、定义基类和派生类 15.2.3、派生类 如class A :public C{}; 用作基类的类必须是已定义的(只是声明不行)。 15.2.4、virtual与其他成员函数原创 2013-10-08 21:43:27 · 786 阅读 · 0 评论 -
第13章 复制控制
复制构造函数、赋值操作符和析构函数总称为复制控制(copy control)。 13.1、复制构造函数 复制构造函数可用于:(1)根据另一个同类型的对象显式或隐式初始化一个对象;(2)复制一个对象,将它作为实参传给一个函数;(3)从函数返回时复制一个对象;(4)初始化顺序容器中的元素,如vector sev(5),分别用了默认构造函数和复制构造函数,先使用string默认构造原创 2013-09-19 15:48:30 · 621 阅读 · 0 评论 -
第12章 类
在C++中用类来定义自己的抽象数据类型。 12.1、类的定义和声明 12.1.1、类定义:扼要重述 每个类可以没有成员,也可以定义多个成员,成员可以是数据、函数或类型别名(typedef,不过这个跟前面两个属于同一档次?是指在类里能定义类型别名这个意思?) 构造函数初始化列表由成员名和带括号的初始值组成,跟在构造函数的形参表之后,并以冒号开头,如,Sal原创 2013-09-05 15:49:57 · 743 阅读 · 0 评论 -
第 9 章 顺序容器
标准库定义了三种顺序容器类型:vector、list和deque(双端队列“double-ended queue”),还提供了三种容器适配器(非迭代器,之前一眼以为是迭代器):stack、queue和priority_queue。 9.1、顺序容器的定义 为了使程序更清晰、简短,容器类型最常用的构造函数是默认构造函数。 容器构造函数:(1)C c;默认构造函数;(原创 2013-08-17 19:39:33 · 756 阅读 · 0 评论 -
第8章 标准IO库
8.1、面向对象的标准库 iostream继承层次:istream和ostream是最上层,istream派生出ifstream和istringstream,ostream派生出ofstream和ostringstream。他们两者共同派生出iostream。iostream派生出stringstream和fstream。 标准库类型不允许做复制或赋值操作。导致的现原创 2013-08-15 23:04:21 · 641 阅读 · 0 评论 -
第7章 函数
7.1、函数的定义 函数形参为函数提供了已命名的局部存储空间。 实参则是一个表达式,它可以是变量或字面值常量,甚至是包含一个或几个操作符的表达式。实参必须具有与形参类型相同、或能隐式转换为形参类型的数据类型。 7.1.1、函数返回类型 函数不能返回另一个函数或者内置数组类型,但可以返回指向函数的指针,或指向数组元素的指针的指针。 函原创 2013-08-14 12:15:15 · 735 阅读 · 0 评论 -
第6章 语句
6.1、简单语句 使用空语句应该加上注释。 6.5、if语句 多个if语句,但后面跟的else比if少,导致匹配存在歧义,这就是悬垂else(dangling-else)问题。 6.6、switch语句 例如:switch(ch){ case ‘a’: 语句;break; ··· default:语原创 2013-08-12 15:00:30 · 671 阅读 · 0 评论 -
第5章 表达式
表达式由一个或多个操作数通过操作符组合而成。最简单的表达式仅包含一个字面值常量或变量。 5.1、算术操作符 求模操作符(%)操作数只能为整型,包括bool、char、short、int和long类型,以及对应unsigned类型。如果两个操作数为正,求模的结果也是正或零;如果两个操作数都是负数,则求模操作的结果为负数或零;如果只有一个值为负,求模结果取决于机器。VS上a%b,求模原创 2013-08-11 18:43:26 · 790 阅读 · 0 评论 -
第4章 数组和指针
4.1、数组 数组是由类型名、标识符和维数组成的复杂数据类型。 4.1.1、数组的定义和初始化 数组的维数必须用大于等于1的常量表达式定义。该表达式只能包含整型字面值常量、枚举常量或者用常量表达式初始化的整型const对象(即必须编译时就可以知道的值,对于函数返回的值赋给const则不可以,因为是运行才知道。int a=1;int b[a];也是不可以)。 显示初始原创 2013-08-10 12:26:03 · 820 阅读 · 0 评论 -
第3章 标准库类型
3.1、命名空间的using声明 在头文件中必须总是使用完全限定的标准库名字(即如std:cin)。因为如果在头文件中放置using声明,就相当于在包含该头文件的每个程序中都放置了同一using声明,不论该程序是否需要using声明。头文件中应该只定义确实必要的东西。 3.2、标准库string类型 3.2.1、string对象的定义和初始化 四种初始化方式:(1)strings1原创 2013-08-09 14:54:34 · 471 阅读 · 0 评论 -
第2章 变量和基本类型
2.3.1、什么是变量 左值(lvalue):可以出现在赋值语句的左边或右边。如变量。 右值(rvalue):只能出现在赋值的右边,不能出现在赋值语句的左边。如常量。 (p40)一般而言,对象就是内存中具有类型的区域,计算左值表达式就会产生对象。 (p41)C++关键字。冷僻关键字:关键字mutable只能用于类的非静态和非常量数据成员,如果一个类的成员函数被声明为cons原创 2013-08-08 13:22:56 · 645 阅读 · 0 评论 -
第11章 泛型算法
11.1、概述 如标准库提供的find运算即基于迭代器的,可以find各种类型,list、数组(因为指针的行为与作用在内置数组上的迭代器一样)等。 如果需要传递一个子区间,则传递指向这个子区间的第一个元素以及最后一个元素的下一位置的迭代器(或指针)。(符合前闭后开的原则) 泛型算法用迭代器来解决的要求有:(1)遍历容器,能够从一个元素移到下一个元素;原创 2013-08-20 14:56:35 · 686 阅读 · 0 评论 -
第10章 关联容器
关联容器支持通过键来高效地查找和读取元素。基本关联容器:map和set。set仅包含一个键。multimap和multiset支持同一个键多次出现在容器中。 10.1、引言:pair类型 pair类型,定义在utility头文件中。创建和初始化如:pair p1(v1,v2);或make_pair(v1,v2)赋给pair类型的变量。 对于pair类型,也可考虑t原创 2013-08-19 16:29:45 · 666 阅读 · 0 评论 -
第14章 重载操作符与转换
14.1、重载操作符的定义 不能重载的操作符:“::”、“.*”、“.”、“?:”。 重载操作符必须具有至少一个类类型或枚举类型的操作数(强制重载操作符不能重新定义用于内置类型对象的操作符的含义)。 对于重载操作符,优先级和结合性还是固定的,并且对于&&、||这些不再具备短路求值特性。 作为成员函数的操作符有一个隐含的原创 2013-09-25 14:37:45 · 637 阅读 · 0 评论