美文网首页
【笔记】C++的150个建议,第五章

【笔记】C++的150个建议,第五章

作者: NeilXu | 来源:发表于2020-01-12 23:04 被阅读0次

    目录
    第一部分 语法篇

    1. 第一章 从C继承而来
    2. 第二章 从C到C++
    3. 第三章 内存管理
    4. 第四章 类
    5. 第五章 模板

    建议60:动多态与静多态

    1. 动多态:
    • 通过继承、虚函数、指针或引用实现。
    • 晚绑定
    • 追求接口与实现分离,让不同的实现代码应用于相同的场合(调用相同的函数实现不同的功能)
    1. 静多态:
    • 通过模板实现
    • 早绑定
    • 追求算法或代码可复用,让相同的代码应用于不同的场合

    建议61:将模板的声明和定义防止在同一个头文件里

    由于模板类型不是一种实类型,它必须等到类型绑定后才能确定最终类型。
    编译器需要根据模板的定义去生成对应的代码。

    三种解决方法,推荐方法1

    1. 将模板的定义放在.h文件中。缺点是会变成inline函数,导致代码膨胀。
    2. 定义还是放在.cpp文件中,引用时,#include "xxx.cpp"。缺点是,有的编译器不支持。
    3. 使用关键字export。缺点是,性能太次,有的编译器不支持。
    export template<class T>
    void output(const T& t){
        std::cout << t;
    }
    

    建议62:用模板代替参数化的宏函数
    因为宏定义有两个重要的缺点:缺乏类型检查、替换时容易出错。

    建议63:函数模板vs.模板函数,类模板vs.模板类

    • 函数模板:用来生产函数的模板
    • 模板函数:用模板生成的函数,指由函数模板生成的具体函数
    • 类模板与模板类:同上。

    其实这4个名词就是几个术语而已,没什么太大意义。

    建议64:继承vs.模板

    相关文章

      网友评论

          本文标题:【笔记】C++的150个建议,第五章

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