第十六周项目3:max带来的冲突
问题及代码:
/*
*Copyright (c)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名:project.cpp
*作 者:陈文青
*完毕日期:2015年6月28日
*版 本 号:v1.0
*
*问题描写叙述:分析以下程序出现的编译错误,给出解决的方案。
*程序输入:
*程序输出:
*/
#include<iostream>
using namespace std;
//定义函数模板
template<class T>
T max(T a, T b)
{
return (a>b)?a:b;
} int main()
{
int x=2,y=6;
double x1=9.123,y1=12.6543;
cout<<"把T实例化为int:"<<max(x,y)<<endl;
cout<<"把T实例化为double:"<<max(x1,y1)<<endl;
return 0;
}
改法1:改变函数名字。使之不与std空间内函数重名
#include<iostream>
using namespace std;
//定义函数模板
template<class T>
T max1(T a, T b)//将函数改为max1
{
return (a>b)?a:b;
} int main()
{
int x=2,y=6;
double x1=9.123,y1=12.6543;
cout<<"把T实例化为int:"<<max1(x,y)<<endl;
cout<<"把T实例化为double:"<<max1(x1,y1)<<endl;
return 0;
}
改法2:加上全局限定符,使用的是本地定义的函数
/*
*Copyright (c)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名:project.cpp
*作 者:陈文青
*完毕日期:2015年6月28日
*版 本 号:v1.0
*
*问题描写叙述:分析以下程序出现的编译错误。给出解决的方案。
*程序输入:
*程序输出:
*/
#include<iostream>
using namespace std;
//定义函数模板
template<class T>
T max(T a, T b)
{
return (a>b)?a:b;
} int main()
{
int x=2,y=6;
double x1=9.123,y1=12.6543;
cout<<"把T实例化为int:"<<::max(x,y)<<endl;//加上全局限定符
cout<<"把T实例化为double:"<<::max(x1,y1)<<endl;
return 0;
}
改法3:强调max函数的命名空间
#include<iostream>
using namespace std;
//定义函数模板
template<class T>
T max(T a, T b)
{
return (a>b)?a:b;
} int main()
{
int x=2,y=6;
double x1=9.123,y1=12.6543;
cout<<"把T实例化为int:"<<std::max(x,y)<<endl; //强调是std空间内的函数
cout<<"把T实例化为double:"<<std::max(x1,y1)<<endl;
return 0;
}
改法4:去掉using namespace std;。在main中cout等std中的名称前加std::
#include<iostream>
//不使用std空间
//using namespace std;
//定义函数模板
template<class T>
T max(T a, T b)
{
return (a>b)?a:b;
} int main()
{
int x=2,y=6;
double x1=9.123,y1=12.6543;
std::cout<<"把T实例化为int:"<<max(x,y)<<std::endl; //声明endl和cout的空间
std::cout<<"把T实例化为double:"<<max(x1,y1)<<std::endl;
return 0;
}
改法5:仅仅使用std空间里的cout和endl
#include<iostream>
using std::cout;//仅仅使用std空间里的cout和endl
using std::endl;
//定义函数模板
template<class T>
T max(T a, T b)
{
return (a>b)? a:b;
} int main()
{
int x=2,y=6;
double x1=9.123,y1=12.6543;
cout<<"把T实例化为int:"<<max(x,y)<<endl;
cout<<"把T实例化为double:"<<max(x1,y1)<<endl;
return 0;
}
改法6:将max定义在自己的空间内
#include<iostream>
using namespace std;
namespace m //将max定义在m空间里
{
//定义函数模板
template<class T>
T max(T a, T b)
{
return (a>b)? a:b;
}
}
int main()
{
int x=2,y=6;
double x1=9.123,y1=12.6543;
cout<<"把T实例化为int:"<<m::max(x,y)<<endl; //使用自己m空间内的max函数
cout<<"把T实例化为double:"<<m::max(x1,y1)<<endl;
return 0;
}
第十六周项目3:max带来的冲突的更多相关文章
- 第十六周 项目三-max带来的冲突
分析以下程序出现的编译错误,给出解决的方案. #include<iostream> using namespace std; //定义函数模板 template<class T> ...
- 201871010123-吴丽丽 《面向对象程序设计(Java)》第十六周学习总结
201871010123-吴丽丽 <面向对象程序设计(Java)>第十六周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...
- 201271050130-滕江南-《面向对象程序设计(java)》第十六周学习总结
201271050130-滕江南-<面向对象程序设计(java)>第十六周学习总结 博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.c ...
- 第十六周博客作业 <西北师范大学| 周安伟>
第十六周作业 助教博客链接https://home.cnblogs.com/u/zaw-315/ 作业要求链接https://www.cnblogs.com/nwnu-daizh/p/10980707 ...
- 201871010104-陈园园《面向对象程序设计(java)》第十六周学习总结
201871010104-陈园园<面向对象程序设计(java)>第十六周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...
- 201871010105-曹玉中《面向对象程序设计(java)》第十六周学习总结
201871010105-曹玉中<面向对象程序设计(java)>第十六周学习总结 项目 内容 这个作业属于哪个过程 https://www.cnblogs.com/nwnu-daizh/ ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第十六周学习总结
201871010106-丁宣元 <面向对象程序设计(java)>第十六周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nw ...
- 201871010107-公海瑜《面向对象程序设计(java)》第十六周学习总结
201871010107-公海瑜<面向对象程序设计(java)>第十六周学习总结 项目 内容 这个作业属于哪 ...
- 201871010128-杨丽霞《面向对象程序设计(java)》第十六周学习总结
201871010128-杨丽霞<面向对象程序设计(java)>第十六周学习总结(1分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-dai ...
随机推荐
- https的基本原理,看完你的程序员女朋友再也不和你提分手了
[http风险] 首先,我们来讲一下平时上网的时候,存在的风险. 初步接触过网络的同学都知道,网络上是很不安全的,尤其是各种公共场合的免费WIFI,以及手机上各种免费上网的万能钥匙.这些不安全因素会导 ...
- Mysql怎么样避免全表扫描,sql查询优化
对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引: 尝试下面的技巧以避免优化器错选了表扫描: 使用ANALYZE TABLE tbl_name为扫 ...
- soapUI 5.1.2 下载以及破解
转:https://blog.csdn.net/weiqing723/article/details/78865734
- django models.py增加后MySQL数据库中并没有生成相应的表
根据教程到添加并保存quest的时候报错了 1.models.py里面的命名没有错 2.查看mysite->settiongs下的INSTALLED_APPS设置正确 3.使用python ma ...
- duang!!!为什么函数能够返回unique_ptr
C++虐我千百遍,我待C++如初恋 从智能指针说起 对高手而言.指针是上天入地的神器.对新手而言,那简直是灾难的源泉.高级语言如Java,C#都自己主动管理内存.你仅仅管new.不必担心内存释放问题. ...
- WinForm容器内控件批量效验是否同意为空?设置是否仅仅读?设置是否可用等方法分享
WinForm容器内控件批量效验是否同意为空?设置是否仅仅读?设置是否可用等方法分享 在WinForm程序中,我们有时须要对某容器内的全部控件做批量操作.如批量推断是否同意为空?批量设置为仅仅读.批量 ...
- 51nod-1346: 递归
[传送门:51nod-1346] 简要题意: 给出一个式子a[i][j]=a[i-1][j]^a[i][j-1] 给出a[1][i],a[i][1](2<=i<=131172) 有n个询问 ...
- nyoj--55--懒省事的小明(STL优先队列)
懒省事的小明 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 小明很想吃果子,正好果园果子熟了.在果园里,小明已经将所有的果子打了下来,而且按果子的不同种类分 ...
- [JZOJ NOIP2018模拟10.19]
T1写炸了今天,期望70却落了个20...连链上的都没有写对 T3什么什么线段树分治套AC自动机,表示我完全自闭了,幸好考场上没有杠T3 总体比赛还是比较舒服,暴力分给的蛮足的,不像昨天那样 T1:林 ...
- [JZOJ 5437] [NOIP2017提高A组集训10.31] Sequence 解题报告 (KMP)
题目链接: http://172.16.0.132/senior/#main/show/5437 题目: 题解: 发现满足上述性质并且仅当A序列的子序列的差分序列与B序列的差分序列相同 于是我们把A变 ...