美文网首页
2018-01-26

2018-01-26

作者: MrCool_5484 | 来源:发表于2018-01-26 15:22 被阅读0次

    Boolan 第五周 高级oop下

    vptr:虚指针指向虚表,若类中含有虚函数,不论数量,则类的空间内含有一个指向虚表的指针。

    vtbl:虚表,表内存放指向虚函数的指针。

    示例:

    若需要使用容器存放不同子类的元素,可以将元素的地址以父类指针形式存放在容器内。

    函数的动态绑定(dynamic binding):ptr指向不同类,调用不同的函数。

    动态绑定实现条件:1、通过指针调用;2、up-cast;3、调用虚函数

    静态绑定 动态绑定

    模板方法的实现原理:

    对象及函数const使用矩阵:

    ☆当成员函数的const和non-const版本同时存在时,const object只能调用const版本,non-const object智能调用non-const版本。

    重载new&delete作用:管理内存。

    重载new&delete分为:全局重载和类内重载。

    全局重载示例:

    类内重载示例:

    重载new&delete 重载new[]&[]delete

    重载new()、dellete():可以手动写任意数量的重载函数,但是参数列表必须不同,第一个参数必须为size_t类型,其余以new指定的

    placement argument为初值。例:Foo* pf=new(300,'c')Foo;

    重载delete()说明:正常情况下不会被调用,仅当程序在ctor时发生异常(throw exception)时会被调用,若不写编译也不会报错,代表不在乎这个异常。

    重载placement  new实现额外空间的申请示例:

    相关文章

      网友评论

          本文标题:2018-01-26

          本文链接:https://www.haomeiwen.com/subject/ldxwaxtx.html