加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C中的模板变量

发布时间:2020-12-16 10:23:57 所属栏目:百科 来源:网络整理
导读:我有这个代码: template class TT GetMax (T a,T b) { return (ab?a:b);}int main () { int i=51,j=26,k; long l=100,m=15,n; k=GetMax(i,j); n=GetMax(l,m); cout k endl; cout n endl; return 0;} 如何更改变量k和n的数据类型,以便它们足够动态以接受返回
我有这个代码:

template <class T>
T GetMax (T a,T b) {
  return (a>b?a:b);
}


int main () {
  int i=51,j=26,k;
  long l=100,m=15,n;
  k=GetMax(i,j);
  n=GetMax(l,m);
  cout << k << endl;
  cout << n << endl;
  return 0;
}

如何更改变量k和n的数据类型,以便它们足够动态以接受返回的值.如果返回的值是double,则k和n将自动加倍,所以我无需担心我是传递int还是double.

我尝试在网上和书中搜索但没有运气.你能帮助我吗?我是模板的新手.

解决方法

在C 11中,您可以使用auto:

auto k = GetMax(i,j);
auto n = GetMax(l,m);

k和n的类型是从用于初始化它们的表达式推导出来的.

在C 11之前,您需要明确地给出类型.但是,您应始终能够以某种形式编写类型,因为您知道参数的类型.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读