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之前,您需要明确地给出类型.但是,您应始终能够以某种形式编写类型,因为您知道参数的类型. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |