美文网首页
博览网:第三周笔记

博览网:第三周笔记

作者: 夜鶯 | 来源:发表于2017-11-05 19:02 被阅读0次

    仅个人学习记录,毫无参考性  望知悉!!!

    零:面向对象

    指多个class之间的关系,一般有Composition「复合」、Inheritance「继承」

    实心菱形表示有东西

    壹:Composition「复合」11. 01:58

    指class中包含(拥有)其他的一个或者多个东西(class等)

    指class中包含(拥有)其他的一个或者多个东西(class等)

                                                          注:代码会由编译器自动添加,但只能调用默认的构造函数

    生命期同步,当外部存在时,内部必然也存在

    貳:Delegation(委托)11.20:49

    指class通过reference「指针」指向另一个或多个东西「class等」

                                                                    注:一般都是讲reference「引用」,不讲pointer「指针」

    生命期不同步,通过指针当外部需要时才会创建委托对象

    有名的写法之一:Handle/Body「pimpl」,无论Body如何改动,Handle不必重复编译

    叁:Inheritance(继承)11.32:23

    语法:三种语法继承,一般与虚函数搭配

    public「公开的」:对于对象和成员函数都是可见的,即可以引用

    protected「受保护的」:对于成员函数是可见的,但对于对象来说是不可见的,这个声明主要是用在继承 中

    private「私有的」:对于成员函数是可见的,对于对象是不可见的

    继承的关系中所有的关系都可以被继承下来:

    数据的继承:继承的是内存

    函数的继承:是函数的调用权

    栗子:public继承

    注:base class「父类的」的dtor「析构函数」必须是virtual「虚函数」,否则会出现undefined behavior「未定义的行为」

    良好习惯:只要calss将会成为一个父类,就将dtor「析构函数」,设为virtual「虚函数」

    肆:虚函数12.0:0

    语法:在任何一个成员函数之前加上virtual关键字,就成为虚函数

    non virtual函数:不希望dericed class「子类」重新定义「override 覆写」

    virtual函数:        希望dericed class重新定义「override 覆写」,有默认定义

    pure virtual函数:必须dericed class「子类」重新定义「override覆写」,无默认定义

    相关文章

      网友评论

          本文标题:博览网:第三周笔记

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