码迷,mamicode.com
首页 > 编程语言 > 详细

C++基础 (8) 第八天 数组指针 模板指针 C语言中的多态 模板函数

时间:2019-03-11 23:40:39      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:规则   调用函数   函数重载   语法   关心   函数模板   splay   实现   文件链接   

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文件、库文件链接起来,最终生成可以在特定平台运行的可执行程序。 

C++基础 (8) 第八天 数组指针 模板指针 C语言中的多态 模板函数

标签:规则   调用函数   函数重载   语法   关心   函数模板   splay   实现   文件链接   

原文地址:https://www.cnblogs.com/eret9616/p/10513977.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!