第十六周项目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带来的冲突相关推荐
- 第十六周项目一-小玩文件(2)
/* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All rights reserved *文件名称:123.cpp *作 者:王蕊 *完成日期:2016年6月14日 *版 本 ...
- 第十六周项目一-小玩文件(1)
/* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All rights reserved *文件名称:123.cpp *作 者:王蕊 *完成日期:2016年6月14日 *版 本 ...
- 第十六周项目3-有相同数字?
输入两个数组中要存放的元素个数及元素值(不超过50个),判断这两个数组中是否有相同的数字. 当两组数中有相同数字时,输出YES,否则,输出NO /* * Copyright (c) 2014,烟台大学 ...
- 十六周项目一----冒泡排序
/*烟台大学计算机与控制工程学院 作者:孙潇 时间:2015年12月19日 问题描述:用序列{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}作为测试数据,运行 ...
- 第十六周 项目1 验证算法 堆排序
堆排序 #include <stdio.h> #define MaxSize 20 typedef int KeyType; //定义关键字类型 typedef char InfoType ...
- 第十六周项目6-武功秘籍
问题描述:小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的). 他注意到:书的第10页和第11页在同一张纸上,但第11页和第12页不在同一张纸上 . 小明只想练习该书的第a页到第 ...
- 第十六周项目1--验证算法--(6)堆排序
问题及代码: /* *烟台大学计算机与控制工程学院 *作 者:刘倩 *完成日期:2016年12月9日 *问题描述:用序列{57,40,38,11,13,34,48,75,6,19,9,7}作为测试数据 ...
- 耗子叔ARTS:第十六周
耗子叔ARTS:第十六周 Algorithm: /*** 283. Move Zeroes* Easy* <p>* 2170* <p>* 79* <p>* Favo ...
- “进度条”博客——第十六周
"进度条"博客 --第十六周 第十六周 所花时间(包括上课) 上课时间:本周一节课,共1.5个小时左右 课下时间: 周四下午3点半到6点半(最终修改BUG) 周五下午4点到6点半( ...
最新文章
- 相关性检验_相关系数
- String Reduction问题分析
- python画二维散点图-基于python 二维数组及画图的实例详解
- IntelliJ IDEA安装主题详细步骤
- 文件包含——本地无视后缀(二)
- android 内容显示栏,android – 在工具栏下显示内容
- python数字转字符串固定位数_python-将String转换为64位整数映射字符以自定...
- Intel的新玩法:固态硬盘也超频
- oracle月份相减函数,Oracle 日期函数的加减
- macd java 源代码_改良智能MACD指标公式及源代码
- 量子力学考研书籍介绍
- php正则表达式. 123,php正则表达式 - 路人甲123的个人页面 - OSCHINA - 中文开源技术交流社区...
- Centos6 yum安装VNC-server
- 数字图像处理:局部直方图处理(Local Histogram Processing)
- BlockingQueue队列有哪些
- 【C语言基础-」TurboC环境】-」bioskey函数详细分析
- webgis期末考试试题_《WebGIS课程》期末考试复习资料
- C语言中fputc和fgetc函数用法
- 大PK:大数据金融科技公司的聚焦
- androidPN java.lang.NoClassDefFoundError: org.androidpn.client.解决方法