随笔分类 - C++ Primer
摘要:面向对象编程(OOP)和泛型编程都能处理在编写程序时不知道类型的情况, 不同之处在于: OOP能处理类型在程序运行之前都未知的情况, 而在泛型编程中, 在编译时就能获知类型了. 函数模板 模板是C++中泛型编程的基础, 一个模板就是一个创建类或函数的蓝图或者说公式. 模板定义以关键字template
阅读全文
摘要:OOP: 概述 面向对象程序设计的核心思想是 数据抽象 , 继承 和 动态绑定 . 通过数据抽象, 我们可以实现类的接口与实现的分离; 使用继承, 可以定义相似的类型并对其相似关系建模; 使用动态绑定, 可以在一定程度上忽略相似类型的区别, 而以统一的方式使用它们的对象. 继承 基类负责定义在层次关
阅读全文
摘要:基本概念 重载运算符是具有特殊名字的函数: 它们的名字由关键字operator和其后要定义的运算符号共同组成. 重载运算符函数的参数数量与该运算符作用的运算对象数量一样多. 对于二元运算符来说, 左侧运算对象传递给第一个参数, 而右侧运算对象传递给第二个参数. 除了重载的函数调用运算符operato
阅读全文
摘要:拷贝, 赋值与销毁 当定义一个类时, 我们显示地或隐式地指定在此类型的对象拷贝, 移动, 赋值和销毁时做什么. 一个类通过定义5种特殊的成员函数来控制这些操作, 包括: 拷贝构造函数 , 拷贝赋值运算符 , 移动构造函数 , 移动赋值运算符 和 析构函数 . 编译器可以合成这些成员函数, 其他的函数
阅读全文
摘要:动态内存与只能指针 静态内存 用来保存局部static对象, 类static数据成员以及定义在任何函数之外的变量. 栈内存用来保存定义在函数内的非static对象. 分配在静态或栈内存中的对象由编译器自动创建和销毁. 栈中的对象, 仅在其定义的程序块运行时才存在; static对象在使用之前分配,
阅读全文
摘要:[toc] 使用关联容器 关联容器与顺序容器有着根本的不同: 关联容器中的元素是按关键字来保存和访问的, 按顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的. 关联容器支持高效的关键字查找和访问. 有两个主要的关联容器类型: map和set. map: map中的元素是一些关键字—值(key
阅读全文
摘要:概述 泛型算法: 称它们为”算法“, 是因为它们实现了一些经典算法的公共接口, 如搜索和排序; 称它们是”泛型的“, 是因为它们可以用于不同类型的元素和多种容器类型, 不仅包括标准库类型, 还包括内置的数组类型. 大多数算法都定义在algorithm中, 标准库还在头文件numeric中定义了一组数
阅读全文
摘要:顺序容器概述 顺序容器的类型有: |类型 |说明 | | | | |vector | 可变长度数组. 支持快速随机访问. |deque | 双端队列. 支持快速随机访问. |list | 双向链表. 只支持双向顺序访问. |forward_list| 单向链表. 只支持单向顺序访问. |array
阅读全文
摘要:IO类 | iostream 定义了读写流的基本类型| | | | | |istream, wistream |从流读取数据 |ostream, wostream |向流写入数据 |iostream, wiostream |读写流 | fstream 定义了读写命名文件的类型 |ifstream,
阅读全文
摘要:定义抽象数据类型 定义在类内部的函数是隐式的inline函数. const成员函数 又叫做常量成员函数, 成员函数参数列表之后紧跟const关键字, const修饰的是类this指针. 默认情况下this的类型是指向类类型非常量版本的常量指针. 假如有一个名为MyClass的类, 在该类的普通成员函
阅读全文
摘要:参数传递 const形参和实参: 顶层const作用于对象本身, 和其他初始化过程一样, 当用实参初始化形参时会忽略掉顶层const, 换句话说, 形参顶层const被忽略掉了, 当形参有顶层const时, 传递给它常量对象或非常量对象都是可以的. 由于顶层const被忽略了, 所以上述两个函数的参
阅读全文
摘要:标准库类型string string初始化 读写string对象 读写未知数量的string对象 重要操作 注意 : 只能对已存在的元素执行下标操作, 尽量使用 范围for循环 可以有效确保下标合法 迭代器介绍 所有标准库容器都可以使用迭代器(string对象不属于容器类型, 但也支持迭代器). 通
阅读全文
摘要:初始化与赋值 当对象在创建时获得了一个特定的值, 我们就说这个对象被 初始化 了. 在使用=号时, 如果创建了新的对象, 则为初始化而非赋值 . 初始化不是赋值, 初始化的含义是创建变量时赋予其一个初始值, 而赋值的含义是吧对象的当前值擦除, 而以一个新值代替. 在使用列表初始化(C++11支持)时
阅读全文
浙公网安备 33010602011771号