摘要:
作用:在该成员函数内无法修改数据成员,且不能调用非const成员函数。 const 成员函数的基本定义格式 类内定义 类型 函数名(参数列表)const { 函数体 } 类内声明,类外定义 类内声明:返回类型 函数名(参数列表)const 返回类型 类名::函数名(参数列表)const { 函数体 阅读全文
摘要:
动机: 在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系” 一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使得软件不能很好的抵御变化。 使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系。从而实现软件体系结构的松 阅读全文
摘要:
相同点: 都是地址的概念:指针指向一块内存,他的内容是所指内存的地址,引用是某块内存的别名 不同点: 指针是一个实体,而引用仅仅是一个别名 在使用时候引用无需解引用,而指针需要解引用(*) 指针只能在定义时别初始化一次,之后不可在变,指针一般可变(除非常量指针) 引用不能为空而指针可以为空 “siz 阅读全文
摘要:
select 查询列表 from 表一 别名 链接类型 union 表2 on 链接条件 where 筛选条件 group by 分组列表 order by 排序列表 limit 起始条目索引,条目数 阅读全文
摘要:
先说平衡二叉树(AVLTree): 作用:就是查找,AVL树的查找,插入和删除再平均和最坏情况下都是O(logn)。如果再AVL树中插入或删除节点后,使得高度之差大于1.此时AVL树的平衡状态就被破坏,他就不是一颗平衡二叉树。如果要它维持在一个平衡状态,就需要对其进行旋转处理,那么创建一颗二叉树的成 阅读全文
摘要:
功能:用作统计使用,又称为聚合函数或统计函数或组函数 分类: sum 求和、avg 平均值、max最大值、min最小值、count 计算个数。 #1 简单使用 SELECT SUM(salary) FROM employees; SELECT AVG(salary) FROM employees; 阅读全文
摘要:
字符函数 length() concat() substr() instr() trim() upper() lower() lpad() rpad() replace() 数学函数 round() ceil() truncate() mod() 日期函数 now() curdate() curti 阅读全文
摘要:
结构体变量的sizeof(牵扯到字节对齐机制) 结构体变量的首地址能够被其最大宽度基本类型成员的大小所整除。 结构体每个成员相对于结构体首地址偏移量都是成员大小的整数倍,如果有需要,编译器会在成员之间加上填充字节。 结构体的总大小为结构体最宽基本类型成员的整数倍。 eg; 1 /* 2 1.结构体的 阅读全文
摘要:
存储形式:数组是一块连续的空间,声明是就要确定长度。链表是一块可不连续的动态空间,长度可变,每个节点都有指向下一个节点的指针。 数据查找:数组的线性查找速度块,查找操作直接使用偏移地址。链表需要按顺序检索节点,效率低。 数据插入或删除:链表可以快速插入和删除节点,而数组则可能需要大量的数据移动。 越 阅读全文
摘要:
通常,编译器处理虚函数的方法是:给每个对象添加一个隐藏成员。隐藏成员中保存了一个指向函数地址数组的指针,这种数组称为虚函数表。简单的说,每一个含有虚函数(无论是其本身的,还是继承而来的)的类都至少有一个与之对应的虚函数表,其中存放着该类所有的虚函数对应的函数指针。 例如:基类对象包含一个指针,该指针 阅读全文
摘要:
一、简单的函数指针的应用 形式1:返回类型(*指针变量)(参数列表); 1 char (*pFun)(int); 2 char glFun(int a){ return;} 3 void main() 4 { 5 pFun = glFun; 6 (*pFun)(2); 7 } 第一行定义了一个指针变 阅读全文