函数模板、类模板中使用template的问题
请教个模板的问题在使用类模板和函数模板的时候template关键字应使用多少次?#include<iostream>usingnamespacestd;template<...
请教个模板的问题
在使用类模板和函数模板的时候template关键字应使用多少次?
#include<iostream>
using namespace std;
template<class T>
class Num
{
};
T MaxT(T a,T b)
{
return a+b;
}
int main()
{
cout<<MaxT(10,20)<<endl
<<MaxT(10.3,20.5)<<endl;
return 0;
}
这样会报错,但是把class Num放下去之后就不报错为什么
#include<iostream>
using namespace std;
template<class T>
T MaxT(T a,T b)
{
return a+b;
}
class Num
{
}; 展开
在使用类模板和函数模板的时候template关键字应使用多少次?
#include<iostream>
using namespace std;
template<class T>
class Num
{
};
T MaxT(T a,T b)
{
return a+b;
}
int main()
{
cout<<MaxT(10,20)<<endl
<<MaxT(10.3,20.5)<<endl;
return 0;
}
这样会报错,但是把class Num放下去之后就不报错为什么
#include<iostream>
using namespace std;
template<class T>
T MaxT(T a,T b)
{
return a+b;
}
class Num
{
}; 展开
1个回答
展开全部
你就这样记着,template从他后面第一个左花括号,管到这个左花括号对应的右花括号为止。
template<class T>
class Num
{
……//不管这个类有多少个成员,有多少个带T或不带T的成员。
};//template管到这里为止。
T MaxT(T a,T b)//从这里开始,没人管,于是就会出现未定义的“T”
{
return a+b;
}
而这里:
template<class T>
T MaxT(T a,T b)
{
return a+b;
}//template管到这里结束。
class Num//从这里开始虽然没有template管,但是class Num里面根本没有涉及任何T参数,自然就没有错。
{
};
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询