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

  • 相关阅读:
    自己动手实现一个WEB服务器
    Java SPI机制和使用示例
    Redis笔记(七):Redis应用场景
    Linux笔记:linux常用命令
    Linux笔记:vi常用命令
    PostgreSQL执行超时的问题
    Redis笔记(五):Redis发布订阅
    Redis笔记(四):Redis事务支持
    Redis笔记(三):Redis常用命令
    Redis笔记(二):Redis数据类型
  • 原文地址:https://www.cnblogs.com/eret9616/p/10513977.html
Copyright © 2020-2023  润新知