C++基础 (8) 第八天 数组指针 模板指针 C语言中的多态 模板函数
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语言中的多态 模板函数的更多相关文章
- C语言-数组指针与指针数组
1.思考 下面这些声明合法吗? int array[5]; int matrix[3][3]; int * pa = array; int * pm = matrix; 问题: array代表数组首元 ...
- C的函数指针与指针函数
1.函数指针 指向函数的指针.本质是一个指针. 指针变量可以指向变量的地址.数组.字符串.动态分配地址,同时也可指向一个函数,每个函数在编译的时候,系统会分配给该函数一个入口地址,函数名表示这个入口地 ...
- c语言中结构体指针
1.指向结构体的指针变量: C 语言中->是一个总体,它是用于指向结构体,如果我们在程序中定义了一个结构体,然后声明一个指针变量指向这个结构体.那么我们要用指针取出结构体中的数据.就要用到指向运 ...
- C++解析(27):数组、智能指针与单例类模板
0.目录 1.数组类模板 1.1 类模板高效率求和 1.2 数组类模板 1.3 堆数组类模板 2.智能指针类模板 2.1 使用智能指针 2.2 智能指针类模板 3.单例类模板 3.1 实现单例模式 3 ...
- 你必须知道的指针基础-4.sizeof计算数组长度与strcpy的安全性问题
一.使用sizeof计算数组长度 1.1 sizeof的基本使用 如果在作用域内,变量以数组形式声明,则可以使用sizeof求数组大小,下面一段代码展示了如何使用sizeof: ,,,,,}; int ...
- C++基础 (9) 第九天 编译器对模板类的二次编译 类模板 自定义数组类
1 昨日回顾 2 编译器对于模板的二次编译 写一个模板函数 然后进行调用 g++ template.cpp -o template // 汇编 g++ -S template.cpp –o templ ...
- C基础知识(3):指针--概念、数组中指针的递增/递减、指针数组&数组指针、指向指针的指针
指针是一个变量,其值为另一个变量的地址. 所有指针的值的实际数据类型,不管是整型.浮点型.字符型,还是其他的数据类型,都是一样的,都是一个代表内存地址的长的十六进制数. 下面从4个代码例子分别讲述以下 ...
- 指针与数组的区别 —— 《C语言深度剖析》读书心得
原书很多已经写的很清楚很精炼了,我也无谓做无意义的搬运,仅把一些基础和一些我自己以前容易搞混的地方写一下. 1. 意义: 指针: 指针也是一种类型,长度为4字节,其存放的内容只能是一个地址(4字节). ...
- 深入理解C语言中的指针与数组之指针篇
转载于http://blog.csdn.net/hinyunsin/article/details/6662851 前言 其实很早就想要写一篇关于指针和数组的文章,毕竟可以认为这是C语言的根本 ...
随机推荐
- Something about 博弈(POJ 3922 A simple stone game)
先是题目,本来是第三次训练的题,在这特别提出来讲. 先是题目: E - A simple stone game Time Limit:1000MS Memory Limit:65536KB ...
- 【ACM】hdu_zs1_1005_大明A+B _201307291603
大明A+B Time Limit : 3000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)Total Submissi ...
- POJ 3130
这题,加了精度错了,不加精度反而对了... #include <iostream> #include <cstdio> #include <cstring> #in ...
- Android-68-Tomcat各种启动错误的解决的方法,如:Exception in thread "Thread-6" NoClassDefFoundError,Document base E:\
上午遇到一个棘手的事儿,导入一个project,结果把原有的Tomcatserver给导坏了.各种红的.黑的.蓝的错误满天飞啊,刚弄完一个项目,怕被毁了.我那个揪心呀! 还好.在走头无路的情况下 ...
- ArcGIS教程:加权总和
摘要 通过将栅格各自乘以指定的权重并合计在一起来叠加多个栅格. 插图 插图中,像元值与其权重因子相乘.两者所得结果相加创建输出栅格.以左上角像元为例.两个输入的值变为 (2.2 * 0.75) = 1 ...
- 基于ArcGIS Flex API实现动态标绘(1.0)
标绘作为一种数据展示形式,在多个行业都有需求. 基于ArcGIS Flex API(3.6)实现标绘API,当前版本号1.0 alpha,支持经常使用几种标绘符号,包含: 圆弧.曲线.圆形.椭圆.弓形 ...
- LNMP 架构 上传文件
修改PHP上传文件大小限制的方法 修改PHP上传文件大小限制的方法1. 一般的文件上传,除非文件很小.就像一个5M的文件,很可能要超过一分钟才能上传完.但在php中,默认的该页最久执行时间为 30 ...
- nyoj--92--图像有用区域(模拟)
图像有用区域 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 "ACKing"同学以前做一个图像处理的项目时,遇到了一个问题,他需要摘取出图片中某个黑 ...
- EOJ 3031 二进制倒置
题目描述 给定一个整数 n(0≤n≤10100).将 n 的 334 位二进制表示形式(不包括开头可能的值为 0 的位,n=0 表示为 1 位 0)前后倒置,输出倒置后的二进制数对应的整数. 例如:n ...
- css3 背景background
Css3背景<background> Css3包含多个新的背景属性,它们提供了对背景更强大的控制.可以自定义背景图的大小,可以规定背景图片的定位区域,css3还允许我们为元素使用多个背景图 ...