随笔分类 - C/C++知识点
摘要:一、运行时环境简介 程序在执行期间,将在其自己的逻辑地址空间内运行,其中每个程序值都在这个空间内有一个地址。一种典型的程序空间模式如下图: 首先,运行时的数据包含数据区和代码区。图中的Text就是代码区,存储目标代码。数据区包括图中的Data、BSS、Heap和Stack。 1.(常量区)Data区
阅读全文
摘要:一、函数模板 1.基本概念 2.变量作为模板参数 3.多参数函数模板 4.函数模板与重载 注意: <1> 相同模板 实例化出的模板函数之间形成重载 <2>不同模板 注意: 在定义出函数模板的时候,函数模板本身并不是互相重载的关系,因为内存中没有产生任何代码, 只有去使用函数模板时,编译器才会产生出相
阅读全文
摘要:一、加号+ 1.成员函数重载 2.友元函数重载 二、输出符号<< 三、索引符号 [ ] 四、补充说明 1.《二元运算符重载》课程评论: (一)为什么<<运算符的重载必须定义为友元 如果在类中定义非友元成员函数,默认第一个参数默认会传入this*指针,这时就无法实现cout在前<<对象在后的格式 因为
阅读全文
摘要:一、-符号重载 1.成员函数重载负号 2.友元函数重载负号 3.补充说明 <1> 《一元运算符编码实现(一)》课程笔记: A:事实上,我们的重载运算符返回void、返回对象本身、返回对象引用都是可以的,并不是说一定要返回一个引用,只不过在不同的情况下需要不同的返回值。 那么什么情况下要返回对象的引用
阅读全文
摘要:一、静态数据成员与静态成员函数 二、从内存角度看静态数据成员 三、从this指针谈静态成员函数 四、注意事项 五、补充说明 1.《静态》课程评论: 静态成员是类的成员,不是对象的成员; 静态成员函数不能直接访问非静态函数,普通成员函数可以调用静态函数。 静态成员函数访问静态数据成员的方法:类名::静
阅读全文
摘要:一、友元函数 分为友元全局函数和友元成员函数。 1.友元全局函数 2.友元成员函数 3.补充说明 <1> 友元带来方便的同时也带来了风险,比如破坏类的封装性,除非有特殊需要,否则一般情况下不建议处处使用友元。 <2> 友元函数可以存取私有成员、公有成员和保护成员,即可以出现在类的任何部分。(但建议将
阅读全文
摘要:1.异常:程序运行期出现的错误。 2.异常处理:对有可能发生异常的地方做出预见性的安排。 3.方法: 4.基本思想:主逻辑与异常处理分离。 5.处理流程 用f2调用f1,用f3调用f2。 如果f1在运行过程中出现异常,会把异常向上抛,抛给f2。 f2捕获到异常并进行相应的处理,如果f2处理不了则继续
阅读全文
摘要:STL:standard Template Lib 一、vector <1> 特点 <2> 常用函数: <3> 遍历方法: 1.for循环 2.迭代器 <4> 举例说明: 二、list 三、map 当通过映射定义了一个对象后,需要向对象中放若干对key——value,也就是键——值; 需要通过pai
阅读全文
摘要:一、三种继承方式 无论哪种继承方式,父类中private都继承到子类中不可见位置,无法通过子类函数访问。 1.公有继承 公有继承private限定符: 2.保护继承 3.私有继承 二、继承中的特殊关系——隐藏与is A 1、隐藏 子类public继承父类,子类中有成员函数与父类的同名但是参数不同的情
阅读全文
摘要:一、对象的生命历程与内存占用情况 二、类的对象的实例化 1、从栈实例化 class TV { //...... }; void main() { TV tv; TV tv[20]; } 2、从堆实例化 class TV { //...... }; void main() { TV *p=new TV
阅读全文
摘要:const关键字——用来控制变量是否可以变化。 const与指针类型 1、说一个比较好记的方法来区分 int const *p与 int* const p,把*读作pointer to然后从后往前读。 第一个int const *p就可以读作 p is a pointer to const int,
阅读全文
摘要:一 C++字符集与词汇 1.关键字(保留字) 如 auto,break, int, …… 2.标识符 程序员定义的命名符。字母或下划线开头,字母、下划线、数字组成。 (1)不能使用关键字 (2)C++中字母区分大小写 3.运算符 如+ —— 加,- ——减等 二 C++变量定义 1)变量是存储单元
阅读全文
摘要:一、&的意思: 1.取地址符,这时候它用于数据的前面,比如int a=&b; 2.C++里还使用&作为引用符,如果你确认程序是标准的C而非C++的话,那么可以排除是引用了。引用也用于数据前面,它只在定义和声明时使用,如int &othername=name; int &a=b; //定义时使用在等号
阅读全文
摘要:一、概念及分类 二、图的存储结构 1、邻接矩阵 顶点: 弧: 边: 表达式语句: 2、邻接表 逆邻接表: 3、十字链表 4、邻接多重表 三、图的权值概念及遍历 权值: 图的遍历: 1.深度优先搜索 2.广度优先搜索 3.图的最小生成树 1)普利姆算法 2)克鲁斯卡尔算法: 四、补充知识点 1、课程下
阅读全文
摘要:一、概念 树是节点的有限集合。 二叉树: 二、补充知识点 1、《二叉树编码实战二》课程笔记: 递归的基本概念:程序调用自身的编程技巧称为递归,是函数自己调用自己. 迭代:利用变量的原值推算出变量的一个新值.如果递归是自己调用自己的话,迭代就是A不停的调用B. 迭代eg(s不停的调用i): int f
阅读全文
摘要:一、概念 分类: 二、补充说明 1、《面向对象的队列设计》课程问答: 首先要明确数据结构和数据存储结构的概念。 数据结构是指数据对象之间的逻辑关系,例如二叉树,队列,栈等,而数据存储结构是描述数据在计算机上的存储方式,它分为顺序存储和非顺序存储,数组就是典型的顺序存储。 而链表就是典型的非顺序存储,
阅读全文
摘要:一、概念 二、应用实例 1.进制转换 #include <stdlib.h> #include <iostream> #include <string> #include "MyStack.h" #include "Coordinate.h" using namespace std; #define
阅读全文
摘要:PS:资料来源慕课网视频。 一、什么是线性表 线性表是n个数据元素的有限序列。 分类: 二、补充知识点 1、栈和队列有出操作、入操作,对应线性表(数组)为插入元素和删除元素,而线性表中要获取指定元素值可直接使用getelem()函数,获取后并不删除元素,可重复获取。 【与只能使用一次的栈、队列有区别
阅读全文
摘要:PS:资料来自慕课网视频。 一、什么是多态 多态: 指相同对象收到不同消息或不同对象收到相同消息时产生不同的动作。 1)静态多态(早绑定):主要通过函数和运算符重载来实现。程序在运行之前,在编译阶段就已经确定下来到底要使用哪个函数。 2)动态多态(晚绑定):对不同的对象下达相同的指令,对象做着不同的
阅读全文

浙公网安备 33010602011771号