• 《C++ Primer Plus 6th》读书笔记


    1. 摘录

    默认参数指的是当函数调用中省略了实参时自动使用的一个值。

    默认参数并非编程方面的重大突破,而只是提供了一种便捷的方式。使用默认参数,可以减少要定义的析构函数、方法以及方法重载的数量。

    试图在同一个文件(或转换单元)中使用同一种类型的显式实例显式具体化将出错。

    2. 最佳函数匹配

    完全匹配 > 提升转换 > 标准转换 > 用户定义的转换

    通常有两个函数完全匹配是错误的,但有两个例外。

    • const和非const之间的区别只适用于指针和引用指向的数据
    • 非模板函数将优于模板函数
    • 在都是模板函数的情况下,较具体的模板函数优先

    3. 关键字decltype

    1 template<class T1, class T2>
    2 void ft(T1 x, T2 y)
    3 {
    4     decltype(x + y) xpy = x + y; // make xpy the same type as x + y
    5 }

    为了判断一下语句,编译器必须遍历一个核对表

    1 decltype(expression) var;

    STEP1. 如果expression是一个没有用括号括起的标识符,则var的类型与该标识符的类型相同,包括const等限定符。

    STEP2. 如果expression是一个函数调用,则var的类型与函数的返回类型相同。 (并不实际调用函数)

    STEP3. 如果expression是一个左值,则var为指向其类型的引用。

    STEP4. 如果前面的条件都不满足,则var的类型与expression的类型相同。

    4. C++11后置返回类型

    1 template<class T1, class T2>
    2 auto h(int x, float y) -> double
    3 {/* function body */}
  • 相关阅读:
    Array
    ie兼容
    webpack----entry
    webpack——html-webpack-plugin
    webpack 报错 path is not defind
    PHPStorm自动压缩YUI Compressor配置
    fly
    Math.max得到数组中最大值
    简单html弹窗
    js中页面跳转(href)中文参数传输方式
  • 原文地址:https://www.cnblogs.com/Azurewing/p/4143724.html
Copyright © 2020-2023  润新知