关于C++中的模板和using namespace std 的冲突
2015-10-16 19:57
363 查看
#include <iostream>
using std::cout;
using std::endl;
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;
return 0;
}
这种就是错误的用法
#include <iostream>
using namespace std;
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;
return 0;
}
--------------------------------------------------------------------------------------------
原因:
因为这个包含了所有库中的函数,这样的话可能造成的是命名的冲突,要避免,
using std::cout;
using std::endl;
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;
return 0;
}
这种就是错误的用法
#include <iostream>
using namespace std;
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;
return 0;
}
--------------------------------------------------------------------------------------------
原因:
因为这个包含了所有库中的函数,这样的话可能造成的是命名的冲突,要避免,
相关文章推荐
- 设计模式学习笔记--原型模式
- C++ main函数传参
- 剑指offer第十六题【合并两个排序的链表】c++实现
- C++ 数组的指针,指针的数组, 数组引用
- C语言相关知识
- visual studio如何修改c++项目的.net framework框架版本
- A + B Is Overflow
- 归并排序/合并排序c++实现
- 初学者 C++学习笔记:字符串指针###
- c语言调用c++类成员函数的方法
- C++STL之string (转)
- C++ ofstream和ifstream详细用法
- 剑指offer第十五题【反转链表】c++实现
- c c++ 学习 项目 参考 [全]
- 我所理解的设计模式(C++实现)—— “一句话总结”和索引
- 于Eclipse传导C/C++配置方法开发(20140721新)
- 内存管理器(三)使用边界标识法实现内存分配器
- C/C++到底支不支持定义不定长数组
- c语言对文件操作完成后尽量手动关闭
- C++打开图形化系统下的文件夹