• 博览网C++学习第三周


    本周学习真正的面向对象程序开发,

    主要就是编写几个有关系(is-a)的类,然后编程的时候针对基类的指针和引用编程。

    其实,C++在这里(指面向对象编程)有一些惯用法:

    1. 基类析构函数必为虚函数

    2. 基类应该要有虚函数(除了虚析函数外的虚函数),否则设计是有问题的。

    3. C++中有一个派别认为虚函数(除了虚析函数外的虚函数 ) 都应该是private的,

        这种思想本质上是将原本public的虚函数都“包裹”了一层非虚函数,非虚函数

        调用私有虚函数也就是模板方法设计模式。我觉得明白原理即可,每个函数都

        这样设计从开发效率上说太低了。

    4. 其实C++搞面向对象的的最大短板就在于只能用指针(引用其实也一样)表示

        一个对象族类。然而原生指针是不会自己做内存管理的,所以一堆的内存泄漏

        问题随之而来。解决之道是std::shared_ptr<>,所以在这里智能指针的使用时相当

        重要的,设计模式中C++也不应该直接用原生指针,也应该用std::shared_ptr<>。

    5. 最后,我个人觉得如果用面向对象的设计,类族大部分应该是不可拷贝的,实在

        要拷贝也应该搞个“虚拷贝函数” virtual Base* copy();

  • 相关阅读:
    Vim插件列表
    比nerdtree更好的文件浏览器:vimfiler
    在不同的窗口之间跳转
    unite
    ARMv7 .n和.w指令宽度指示符后缀
    Mybatis之分表设计与分表插入
    thymeleaf之菜单树
    管理后台菜单查询
    Linux下Tomcat重新启动
    网页缓存清除
  • 原文地址:https://www.cnblogs.com/y990441/p/7788202.html
Copyright © 2020-2023  润新知