摘要:
C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。 一、面向过程设计中的static 1、静态全局变量 在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量 阅读全文
摘要:
const意味为readonly,即只读,const可被施加于任何作用域内的对象,函数参数,函数返回类型,成员函数本体 使用: const修饰变量时本质是 const在谁后面谁就不可修改,const在最前面则将其后移一位即可,二者等效,*号也算一种数据类型 例如: 1. const int a; 与 阅读全文
摘要:
1. 重写 override 定义:子类重写基类的虚函数 特点:(1) 函数名相同 (2) 作用域不同 (3) 参数列表相同 (4) 基类函数必须有virtual关键字且不能有static (5) 返回值相同 (6) 重写函数的访问修饰符可以不同 例子:基类:virtual void restric 阅读全文
摘要:
隐式接口:隐式实现接口时,接口和类(实现接口的类)都可以访问类中的方法 显示接口:只有通过接口来访问类中的方法 举例:定义一个接口 public Interface ICategory { string Name(); } 隐式实现 public class Category:ICategory { 阅读全文
摘要:
提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据, 如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。 需要注意的是,没有volati 阅读全文
摘要:
单例模式也称单子模式、单件模式,通过单例模式可以保证系统中只有一个类只有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享 对于系统中的某些类来说,只有一个实例很重要,比如一个打印机可以有多个打印任务,但是只有一个正在工作的任务,一个系统只能有一个窗口管理器或文件系统 单例模式的要点有 阅读全文
摘要:
定义:形如friend func1();使普通函数能够访问类的友元,实现位置可以在类外或类中,实现代码与普通函数相同,友元关系不能被继承,是单向,不具有交换性, 在实现类之间数据共享时减少系统开销,提高效率等 优点:能够提高效率,表达简单,清晰 缺点:友元破坏了封装机制,尽量不使用友元 声明:放在类 阅读全文
摘要:
当编译器为函数调用产生代码时,它首先把所有的参数压栈,然后调用函数,在函数内部产生代码,向下移动指针为函数局部变量提供 存储单元(这里的向下是相对的,在压栈时,机器的栈指针可能增加也可能减少),但是在汇编语言CALL中,CPU把程序代码中的函数调 用指令的地址压栈,所以汇编语言RETURN可以使用这 阅读全文
摘要:
new 和 delete 众所周知,C中的malloc和free是用来申请和释放内存的,相应的C++中也有对应的申请和释放内存的操作,即是new和delete,但是C++的new和delete比C中的malloc和free要好得多, C++把创建一个对象所需的所有动作都结合在一个称为new的运算符里 阅读全文
摘要:
内存管理的开销 当在栈里自动创建对象时,对象的大小和它们的生存期被准确地内置在生成的代码里,这是因为编译器知道确切的类型,数量和范围,而在堆里创建对象还包括另外的时间和空间的开销,例如使用new创建 对象,此时会调用malloc来从堆里申请一块内存,从堆里搜索一块足够大的内存来满足请求,这可以通过检 阅读全文