zoukankan      html  css  js  c++  java
  • C++函数模板template

    一.  问题:

    强类型语言要求我们为所有希望比较的类型都实现一个实例

    int min(int a, int b) {
    	return a < b ? a : b;
    }
    double min(double a, double b) {
    	return a < b ? a : b;
    }
    

    有一种方法可替代为每个min()实例都显式定义一个函数的方法这种方法很有吸引力但是也很危险.那就是用预处理器的宏扩展设施例如  : #define min(a,b) ((a) < (b) ? (a) : (b))

    在复杂调用的情况下,它的行为是不可预期的,这是因为它的两个参数值都被计算两次. 一次是在a 和b 的测试中另一次是在宏的返回值被计算期间.

    #include "header.h"
    #define min(a,b) ((a)<(b)?(a):(b))
    int _min(const int &a, const int &b)
    {
        return a < b ? a : b;
    }
    int main()
    {int a = 101;
        int b = 201;
        int c = min(a++, b);
        cout << c <<" "<< a<<endl;  //102 103

      a = 101;
        b = 201;
        c = min(++a, b);
        cout << c <<" "<< a<<endl; //103 103
    c
    = _min(a, b); cout << c << " " << a << endl; //103 103 return 0; }
  • 相关阅读:
    MVP 实战
    Model 层
    Presenter 层
    View 层
    DB数据库的基本操作
    MongoDB数据库基本操作
    转换函数
    字符串函数
    空值处理
    Java中使用Redis的几种数据类型总结
  • 原文地址:https://www.cnblogs.com/mypsq/p/5368144.html
Copyright © 2011-2022 走看看