我是靠谱客的博主 贤惠煎饼,最近开发中收集的这篇文章主要介绍C++函数模板,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#include
#include
using namespace std;

template
inline T min( const T& a, const T& b)
{
      return a > b ? b : a;
}

template   //这句不能省,否则出错
inline T max( const T& c, const T& d )
{
      return c > d ? c : d;
}

template
int compare( const T& strA, const L& strB )
{
      string str_A(strA), str_B(strB);  //用C风格的数组构造string对象
      try
      {
            if( str_A > str_B )
                  return 1;
            else if ( str_A == str_B )
                  return 0;
            else
                  return -1;
      }
      catch(exception ex)
      {
            cout << "compare exception!" << endl;
      }
      return 0;  //省略这句会有---warning C4715: 'compare' : not all control paths return a value
}

int main(void)
{
      string str_A("hi"), str_B("world");
      cout << min( 'a', 'b') << endl;
      cout << min( 12, 11) << endl;
      cout << min( 13.24, 10.01) << endl;
      cout << max( 10, 11) << endl;
      cout << compare( "hi", "world") << endl;
      return 0;
}
补充说明:
若将compare模板函数申明为如下形式:
template
int compare( const T& strA, const T& strB )
则红色标记语句会有如下错误:
template parameter 'T' is ambiguous
could be  'char [6]'  or  'char [3]'
即类型不匹配问题。解决办法就是如下方式申明compare模板函数:

template T, typename L>
int compare( const T& strA, const L& strB )

最后

以上就是贤惠煎饼为你收集整理的C++函数模板的全部内容,希望文章能够帮你解决C++函数模板所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部