zoukankan      html  css  js  c++  java
  • STL 实参推演

       我们的max函数如下:

    template <typename T>
    inline T const& max (T const& a, T const& b)
    {
        // if a < b then use b else use a
        return  a < b ? b : a;
    }

    我们传递的两个参数类型必须一致,编译器才能得出结论:T必须是你传递的类型。注意:这里不允许进行自动类型转换,每个T都必须正确的匹配

    max(4,7); 可以,两个实参都是int

    max(4,4,2)不行,第一个int,第二个是double

    有3中方法可以处理上面错误:

    1.对实参进行强制类型转换,使他们可以相互匹配

      max(static_cast<double>(4),4.2) 

    2.显示指定(或者限定)T的类型

       max<double>(4,4.2)

    3指定两个参数可以有不同类型。

  • 相关阅读:
    DOM节点的创建
    js中css样式
    js中面向对象
    js
    this是什么!
    事件
    Dom
    逻辑运算和作用域的问题
    Json
    数组
  • 原文地址:https://www.cnblogs.com/youxin/p/2592223.html
Copyright © 2011-2022 走看看