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语言中的多态 模板函数的更多相关文章

  1. C语言-数组指针与指针数组

    1.思考 下面这些声明合法吗? int array[5]; int matrix[3][3]; int * pa = array; int * pm = matrix; 问题: array代表数组首元 ...

  2. C的函数指针与指针函数

    1.函数指针 指向函数的指针.本质是一个指针. 指针变量可以指向变量的地址.数组.字符串.动态分配地址,同时也可指向一个函数,每个函数在编译的时候,系统会分配给该函数一个入口地址,函数名表示这个入口地 ...

  3. c语言中结构体指针

    1.指向结构体的指针变量: C 语言中->是一个总体,它是用于指向结构体,如果我们在程序中定义了一个结构体,然后声明一个指针变量指向这个结构体.那么我们要用指针取出结构体中的数据.就要用到指向运 ...

  4. C++解析(27):数组、智能指针与单例类模板

    0.目录 1.数组类模板 1.1 类模板高效率求和 1.2 数组类模板 1.3 堆数组类模板 2.智能指针类模板 2.1 使用智能指针 2.2 智能指针类模板 3.单例类模板 3.1 实现单例模式 3 ...

  5. 你必须知道的指针基础-4.sizeof计算数组长度与strcpy的安全性问题

    一.使用sizeof计算数组长度 1.1 sizeof的基本使用 如果在作用域内,变量以数组形式声明,则可以使用sizeof求数组大小,下面一段代码展示了如何使用sizeof: ,,,,,}; int ...

  6. C++基础 (9) 第九天 编译器对模板类的二次编译 类模板 自定义数组类

    1 昨日回顾 2 编译器对于模板的二次编译 写一个模板函数 然后进行调用 g++ template.cpp -o template // 汇编 g++ -S template.cpp –o templ ...

  7. C基础知识(3):指针--概念、数组中指针的递增/递减、指针数组&数组指针、指向指针的指针

    指针是一个变量,其值为另一个变量的地址. 所有指针的值的实际数据类型,不管是整型.浮点型.字符型,还是其他的数据类型,都是一样的,都是一个代表内存地址的长的十六进制数. 下面从4个代码例子分别讲述以下 ...

  8. 指针与数组的区别 —— 《C语言深度剖析》读书心得

    原书很多已经写的很清楚很精炼了,我也无谓做无意义的搬运,仅把一些基础和一些我自己以前容易搞混的地方写一下. 1. 意义: 指针: 指针也是一种类型,长度为4字节,其存放的内容只能是一个地址(4字节). ...

  9. 深入理解C语言中的指针与数组之指针篇

    转载于http://blog.csdn.net/hinyunsin/article/details/6662851     前言 其实很早就想要写一篇关于指针和数组的文章,毕竟可以认为这是C语言的根本 ...

随机推荐

  1. 图论·Floyd算法·HDU2544&1874 (伪)2066

    在看到1874的题时,第一反应是用上一篇的并查集方法,后来查了一下是要用Floyd做,所以就去查Floyd算法的资料. 即插点法,是一种用于寻找给定的加权图中顶点间最短路径的算法. 核心代码:  ma ...

  2. String Boot-thymeleaf使用(四)

    简介 Thymeleaf是面向Web和独立环境的现代服务器端Java模板引擎,能够处理HTML,XML,JavaScript,CSS甚至纯文本.,可以完全替代jsp,也是spring boot官方推荐 ...

  3. C#--async-await的用法

    NET 中的 async/await 异步编程 MSDN上的文章 **async与await最佳实践 需要先理解thread的用法,再掌握task的用法,才能力理解async和await的用法 usi ...

  4. 优酷土豆资深工程师:MySQL高可用之MaxScale与MHA

    本文根据DBAplus社群第67期线上分享整理而成 本次分享主要包括以下内容: 1.MySQL高可用方案 2.为什么选择MHA 3.读写分离方案的寻找以及为什么选择Maxscale 一.MySQL  ...

  5. POJ 1696

    这题是明显的TU包变形. 使用卷包裹法可解,而且是必定可以经过所有点的.直观可知,当经过某点后,相当于把之前的点抹去,求剩下点的TU包,递归下去,也就能把点全部经过了. 于是,只需把经过的点标记一下就 ...

  6. ASP怎样检測某目录是否存在,不存在则自己主动创建

    ASP怎样检測某目录是否存在,不存在则自己主动创建 folder=server.mappath("/imagess")  Set fso = CreateObject(" ...

  7. 热修复JSPatch之实战教程

      接上篇<热修复JSPatch之接口设计>,在这篇文章主要给大家讲述一下怎样高速具备热修复能力,当然了假设有人有志于把JSPatch系统的学习,甚至用JSPatch进行开发的.就没有必要 ...

  8. [iOS]UITableViewController完毕收回键盘操作

    UITableViewController 本身可以实现键盘适配(cell中控件焦点会移动到键盘上方 在做键盘收回的时候思考过例如以下方案 1.tableview加入点击事件 结果:点击事件和tabl ...

  9. ioctl方法详解

    设备控制接口(ioctl 函数)回想一下我们在字符设备驱动中介绍的struct file_operations 结构,这里我们将介绍一个新的方法: int (*ioctl) (struct inode ...

  10. Java-Maven:Maven清单

    ylbtech-Java-Maven:Maven清单 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:http ...