您的位置:首页 > 编程语言 > C语言/C++

关于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;

}

--------------------------------------------------------------------------------------------

原因:

因为这个包含了所有库中的函数,这样的话可能造成的是命名的冲突,要避免,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: