摘要:
隐式接口:隐式实现接口时,接口和类(实现接口的类)都可以访问类中的方法 显示接口:只有通过接口来访问类中的方法 举例:定义一个接口 public Interface ICategory { string Name(); } 隐式实现 public class Category:ICategory { 阅读全文
摘要:
当编译器为函数调用产生代码时,它首先把所有的参数压栈,然后调用函数,在函数内部产生代码,向下移动指针为函数局部变量提供 存储单元(这里的向下是相对的,在压栈时,机器的栈指针可能增加也可能减少),但是在汇编语言CALL中,CPU把程序代码中的函数调 用指令的地址压栈,所以汇编语言RETURN可以使用这 阅读全文
摘要:
定义:形如friend func1();使普通函数能够访问类的友元,实现位置可以在类外或类中,实现代码与普通函数相同,友元关系不能被继承,是单向,不具有交换性, 在实现类之间数据共享时减少系统开销,提高效率等 优点:能够提高效率,表达简单,清晰 缺点:友元破坏了封装机制,尽量不使用友元 声明:放在类 阅读全文
摘要:
new 和 delete 众所周知,C中的malloc和free是用来申请和释放内存的,相应的C++中也有对应的申请和释放内存的操作,即是new和delete,但是C++的new和delete比C中的malloc和free要好得多, C++把创建一个对象所需的所有动作都结合在一个称为new的运算符里 阅读全文
摘要:
内存管理的开销 当在栈里自动创建对象时,对象的大小和它们的生存期被准确地内置在生成的代码里,这是因为编译器知道确切的类型,数量和范围,而在堆里创建对象还包括另外的时间和空间的开销,例如使用new创建 对象,此时会调用malloc来从堆里申请一块内存,从堆里搜索一块足够大的内存来满足请求,这可以通过检 阅读全文