摘要:
第十六章 模板和泛型编程 面向对象编程和泛型编程都能处理在编写程序时不知道类型的情况。 OOP能处理类型在程序运行之前都未知的情况; 泛型编程中,在编译时就可以获知类型。 定义模板 模板:模板是泛型编程的基础。一个模板就是一个创建类或函数的蓝图或者说公式。 函数模板 template <typena 阅读全文
posted @ 2023-02-19 23:20
nullptrException
阅读(72)
评论(0)
推荐(0)
摘要:
第十七章 标准库特殊设施 tuple类型 tuple是类似pair的模板,每个成员类型都可以不同,但tuple可以有任意数量的成员。 但每个确定的tuple类型的成员数目是固定的。 我们可以将tuple看做一个“快速而随意”的数据结构。 tuple支持的操作: | 操作 | 解释 | | | | | 阅读全文
posted @ 2023-02-19 23:19
nullptrException
阅读(22)
评论(0)
推荐(0)
摘要:
第十五章 面向对象程序设计 OOP:概述 面向对象程序设计(object-oriented programming)的核心思想是数据抽象、继承和动态绑定。 继承(inheritance): 通过继承联系在一起的类构成一种层次关系。 通常在层次关系的根部有一个基类(base class)。 其他类直接 阅读全文
posted @ 2023-02-19 23:19
nullptrException
阅读(32)
评论(0)
推荐(0)
摘要:
第十三章 拷贝控制 拷贝控制操作(copy control): 拷贝构造函数(copy constructor) 拷贝赋值运算符(copy-assignment operator) 移动构造函数(move constructor) 移动赋值函数(move-assignement operator) 阅读全文
posted @ 2023-02-19 23:19
nullptrException
阅读(66)
评论(0)
推荐(0)
摘要:
第十二章 动态内存 对象的生命周期: 全局对象在程序启动时分配,结束时销毁。 局部对象在进入程序块时创建,离开块时销毁。 局部static对象在第一次使用前分配,在程序结束时销毁。 动态分配对象:只能显式地被释放。 对象的内存位置: 静态内存用来保存局部static对象、类static对象、定义在任 阅读全文
posted @ 2023-02-19 23:18
nullptrException
阅读(41)
评论(0)
推荐(0)
摘要:
第十一章 关联容器 关联容器和顺序容器的不同:关联容器中的元素时按照关键字来保存和访问的。 关联容器支持通过关键字来高效地查找和读取元素,基本的关联容器类型是 map和 set。 关联容器类型: | 容器类型 | 解释 | | | | | 按顺序存储 | | | map | 关键数组:保存关键字-值 阅读全文
posted @ 2023-02-19 23:18
nullptrException
阅读(66)
评论(0)
推荐(0)
摘要:
第十章 泛型算法 泛型算法 因为它们实现共同的操作,所以称之为“算法”;而“泛型”、指的是它们可以操作在多种容器类型上。 泛型算法本身不执行容器操作,只是单独依赖迭代器和迭代器操作实现。 头文件: #include <algorithm>或者 #include <numeric>(算数相关) 大多数 阅读全文
posted @ 2023-02-19 20:38
nullptrException
阅读(29)
评论(0)
推荐(0)
摘要:
第七章 类 (Class) 定义抽象数据类型 类背后的基本思想:数据抽象(data abstraction)和封装(encapsulation)。 数据抽象是一种依赖于接口(interface)和实现(implementation)分离的编程技术。 练习7.1 使用2.6.1节定义的Sales_da 阅读全文
posted @ 2023-02-19 19:36
nullptrException
阅读(21)
评论(0)
推荐(0)
摘要:
第九章 顺序容器 顺序容器概述 顺序容器(sequential container):为程序员提供了控制元素存储和访问顺序的能力。这种顺序不依赖于元素的值,而是与元素加入容器时的位置相对应。 顺序容器类型 | 容器类型 | 介绍 | | | | | vector | 可变大小数组。支持快速随机访问。 阅读全文
posted @ 2023-02-19 19:35
nullptrException
阅读(39)
评论(0)
推荐(0)
摘要:
第八章 IO库 前面章节已经在用的IO库设施 istream:输入流类型,提供输入操作。 ostream:输出流类型,提供输出操作 cin:一个istream对象,从标准输入读取数据。 cout:一个ostream对象,向标准输出写入数据。 cerr:一个ostream对象,向标准错误写入消息。 > 阅读全文
posted @ 2023-02-19 19:15
nullptrException
阅读(34)
评论(0)
推荐(0)
摘要:
第六章 函数 函数基础 函数定义:包括返回类型、函数名字和0个或者多个形参(parameter)组成的列表和函数体。 调用运算符:调用运算符的形式是一对圆括号 (),作用于一个表达式,该表达式是函数或者指向函数的指针。 圆括号内是用逗号隔开的实参(argument)列表。 函数调用过程: 1.主调函 阅读全文
posted @ 2023-02-19 18:50
nullptrException
阅读(64)
评论(0)
推荐(0)
摘要:
第五章 语句 简单语句 表达式语句:一个表达式末尾加上分号,就变成了表达式语句。 空语句:只有一个单独的分号。 复合语句(块):用花括号 {}包裹起来的语句和声明的序列。一个块就是一个作用域。 练习5.1 什么是空语句?什么时候会用到空语句? 解: 只含义一个单独的分号的语句是空语句。如:;。 如果 阅读全文
posted @ 2023-02-19 18:17
nullptrException
阅读(80)
评论(0)
推荐(0)
摘要:
第四章 表达式 表达式基础 运算对象转换:小整数类型会被提升为较大的整数类型 重载运算符:当运算符作用在类类型的运算对象时,用户可以自行定义其含义。 左值和右值: C中原意:左值可以在表达式左边,右值不能。 C++:当一个对象被用作右值的时候,用的是对象的值(内容); 被用做左值时,用的是对象的身份 阅读全文
posted @ 2023-02-19 17:22
nullptrException
阅读(63)
评论(0)
推荐(0)
摘要:
第三章 字符串、向量和数组 using声明 使用某个命名空间:例如 using std::cin表示使用命名空间std中的名字cin。 头文件中不应该包含using声明。这样使用了该头文件的源码也会使用这个声明,会带来风险。 练习3.1 使用恰当的using 声明重做 1.4.1节和2.6.2节的练 阅读全文
posted @ 2023-02-19 16:25
nullptrException
阅读(21)
评论(0)
推荐(0)
摘要:
第二章 变量和基本类型 任何常用的编程语言都具备一组公共的语法特征,最基本的特征包括: 整型、字符型等内置类型 变量,用来为对象命名 表达式和语句,用于操作上述数据类型的具体值 if 或 while 等控制结构,有选择地执行一些语句或重复地执行一些语句 函数,用于定义可供随时调用的计算单元 大多数编 阅读全文
posted @ 2023-02-19 16:05
nullptrException
阅读(80)
评论(0)
推荐(0)
摘要:
第一章 开始 熟悉编译器 g++: 编译:g++ --std=c++11 ch01.cpp -o main 运行:./prog1 查看运行状态:echo $? 编译多个文件:g++ ch2.cpp Sales_item.cc -o main 输入 g++ --help,查看编译器选项: Usage: 阅读全文
posted @ 2023-02-19 15:30
nullptrException
阅读(55)
评论(0)
推荐(0)
摘要:
C++11的设计者总是希望从各种方案中抽象出更为通用的方法来构建新的特性。这意味着C++11中的新特性往往具有广泛的可用性,可以与其他已有的,或者新增的语言特性结合起来进行自由的组合,或者提升已有特性的通用性。以下是我们在编程过程中常用的一些新特性:
委托(委派)构造函数
继承构造函数
右值引用
移动语义和完美转发
列表初始化
POD 类型
非受限联合体
使用 using 定义别名
可调用对象包装器和绑定器
常量表达式
等等 阅读全文
posted @ 2023-02-19 15:10
nullptrException
阅读(17)
评论(0)
推荐(0)
摘要:
在C++11中,设计者总是保证在不破坏原有设计的情况下,增加新的特性,以充分保证语言的稳定性与兼容性,以下新特性基本上都遵循了该设计思想。 阅读全文
posted @ 2023-02-19 14:57
nullptrException
阅读(42)
评论(0)
推荐(0)