
函数模板和类模板的参数可以是任意的数据类型麽?
1个回答
展开全部
这其实取决于你要完成的功能,如果是比较大小的一个模版函数,那么传入的类型就必须支持比较操作,比如:
template <class x> bool first_ge_second(const x& x1, const x& x2)
{
return (x1 > x2);
}
如果x1 > x2这个函数返回真,很显然,这个X(模版参数)必须支持大于符号的操作,传统的类型肯定可以(比如int, float),但如果是自定义的类,那么必须重载>操作符,否则代码无法编译通过。
template <class x> bool first_ge_second(const x& x1, const x& x2)
{
return (x1 > x2);
}
如果x1 > x2这个函数返回真,很显然,这个X(模版参数)必须支持大于符号的操作,传统的类型肯定可以(比如int, float),但如果是自定义的类,那么必须重载>操作符,否则代码无法编译通过。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询