1昨日回顾
2 多态的练习-圆的图形
3多态的练习-程序员薪资
4员工管理案例-抽象类和技术员工的实现
employee.h:
employee.cpp:
technician.h:
technician.cpp:
source.cpp:
5员工管理案例-销售和经理实现
修改employee.h:
displayStatus不用虚函数了
salesman.h:
salesman.cpp:
manager.h:
manager.cpp:
6员工管理案例-销售经理的实现
7 中午回顾
注意:
多继承的时候一定要将父类的析构函数设为虚函数
p1和p2的指针都指向Child
然后进行delete 看似没有问题 上面parent1到delete也不报错
但是其实已经错了
第一段代码之所以没报错是因为
Child的组成是a,b,c
开始free的时候把a部分释放掉了,
如果从b开始释放释放的大小就不对称了
delete只是malloc的封装,等于malloc+析构函数
结论:如果需要多继承,一定要加虚析构。
8 C语言中的函数指针
1.如何定义一个数组指针:
(array2 是一个大数组(二维数组) 里面每个部分都是一个array[10])
2.如何定义一个函数指针:
函数指针的调用:
9 C语言中的多态:
多态:
例如说:
子类中虚函数方法重写了父类虚函数方法
父类指针可以直接指向子类并调用子类的方法
可以定义一个架构函数,这个架构函数只要传入父类型的参数就可以,不用为每个子类单独去写一种参数。
C语言中的多态:通过回调函数,即函数指针,提供了一个统一的接口。函数指针调用函数,执行函数内部的不同的方法。
9 C语言中的多态
。。。略
赵云不关心锦囊是谁写的,可以直接调用struct * 类型的函数(struct*内部
调用者和实现者通过C语言中的回调函数实现隔离
多态是软件开发的最高境界
设计模式是讲怎么把多态写好
10 函数模板的基本语法
模板的作用 对参数类型的一个泛化,解决了一个代码重用性的问题
11 函数模板数组排序练习
12 模板函数和函数重载
13 函数模板和普通函数的匹配规则
14 编译器的编译过程
1.预处理:
宏展开
2.编译:
转化为汇编语言(可以直接操作寄存器)
如果想破解程序:
可执行程序反编译—通过汇编代码
- 编译就是把C/C++代码(比如上面的”.i”文件)“翻译”成汇编代码。
3.汇编:
- 汇编就是将第二步输出的汇编代码翻译成符合一定格式的机器代码,在Linux系统上一般表现位ELF目标文件(OBJ文件)。
(二进制文件)
4.链接
链接就是将汇编生成的OBJ文件、系统库的OBJ文件、库文件链接起来,最终生成可以在特定平台运行的可执行程序。