《c++模板学习》中函数模板例子出现的问题
来源:互联网 发布:社工 数据库 编辑:程序博客网 时间:2024/06/10 05:15
上一篇文章《c++模板学习》中函数模板的例子:
#include <iostream>using std::cout;using std::endl;//声明一个函数模版,用来比较输入的两个相同数据类型的参数的大小,class也可以被typename代替,//T可以被任何字母或者数字代替。template <class T>T min(T& x,T& y){ return(x<y)?x:y;}int main( ){ int n1=2,n2=10; double d1=1.5,d2=5.6; cout<< "较小整数:"<<min(n1,n2)<<endl; cout<< "较小实数:"<<min(d1,d2)<<endl; system("PAUSE"); return 0;}
在运行的时候会出错,错误提示如下:
这是因为在文件xutility中也定义了一个min函数,这个头文件一定是被包含在了iostream类的相关文件中,如下:
#define _IMPL_MIN min
// TEMPLATE FUNCTION min
template<class _Ty> inline
const _Ty& (__CLRCALL_OR_CDECL _IMPL_MIN)(const _Ty& _Left, const _Ty& _Right)
{ // return smaller of _Left and _Right
return (_DEBUG_LT(_Right, _Left) ? _Right : _Left);
}
因此在main()函数中调用的时候编译器分不清调用哪个。
解决方法:
将自己定义的模板改个名字就可以了。
还有一个方法是将模板定义成如下形式:
template <class T>
T min(T& x,T& y)
{
return(x<y)?x:y;
}
这样定义的话就和xutility文件中的定义一样了,所以编译器编译的时候也不会有二义性。
0 0
- 《c++模板学习》中函数模板例子出现的问题
- 在c语言中实现函数模板的例子
- 学习C++模板---模板函数
- 学习C++模板函数例子的一些理解 (1)
- 学习笔记-----关于VS中使用模板类出现无法解析的外部符号问题
- 模板函数的定义问题
- (C/C++学习笔记)函数模板的深入理解
- 小白教你学习C++(5)函数模板的使用
- 问模板函数、函数模板,模板类、类模板的区别的问题
- 在 C 语言中实现模板函数的方法
- 在 C 语言中实现模板函数的方法
- C++中函数模板的实例
- 【转】在C语言中实现模板函数的方法
- 在 C 语言中实现模板函数的方法
- 我的小小学习笔记(7)之C++------模板之模板函数
- C++模板学习(函数模板+类模板)
- C++ Template中关于模板类的成员模板函数显示实例化的问题
- 关于模板函数重载中对象实例化的问题
- Google Maps地图投影全解析
- Learning LMAX Disruptor
- Android有效解决加载大图片时内存溢出的问题
- 可暂停的垂直向上滚动jQuery代码
- Android应用程序介绍
- 《c++模板学习》中函数模板例子出现的问题
- JScript 中的特殊字符
- html表单提交数据验证
- 几条apache的配置经验
- IOS 制作静态库及注意事项
- win2008+apache2.4.9+php5.5.1突然访问速度快了
- 在互联网混,越分享越幸福
- 浅谈MySQL索引背后的数据结构及算法
- Android ListView一些应该知道的事