max带来的冲突
题目要求:
/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名:sum123.cpp
* 作 者:林海云
* 完毕日期:2015年8月20日
* 版 本 号:v2.0
* 问题描写叙述:分析以下程序出现的编译错误,给出解决的方案
* 输入描写叙述:NULL。
* 程序输出:输出相应的情况;
*/
1)须要改动的代码:
#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;
}
执行结果显示的问题:
2)改动途径1:main中前加::,明白调用的是当前工作域中定义的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:"<<::max(x,y)<<endl;
cout<<"把T实例化为double:"<<::max(x1,y1)<<endl;
return 0;
}
结果:
改动途径2:在main中的max前加std::。于是main中调用的max变成std中定义的函数模板
#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;
cout<<"把T实例化为double:"<<std::max(x1,y1)<<endl;
return 0;
}
改动途径3:去掉using namespace std,在main中cout等std中的名称前加std::,于是main中调用的max是本工作区域中定义的函数模板
#include<iostream>
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;
std::cout<<"把T实例化为double:"<<max(x1,y1)<<std::endl;
return 0;
}
执行结果同上
max带来的冲突的更多相关文章
- 第十六周 项目三-max带来的冲突
分析以下程序出现的编译错误,给出解决的方案. #include<iostream> using namespace std; //定义函数模板 template<class T> ...
- 第十六周项目3:max带来的冲突
问题及代码: /* *Copyright (c)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名:project.cpp *作 者:陈文青 *完毕日期:20 ...
- 解决crlf 和 lf不同带来的冲突问题
crlf 和 lf 是文本换行的不同方式: crlf: "\r\n", windows系统的换行方式 lf: "\n", Linux系统的换行方式 他们之间的不 ...
- 一点解决版本冲突的应急思路、怎样在所有jar包文件中搜索冲突的方法?
maven是一个很好的项目管理工具,你可以轻松的定义一个引用,从而达到使用别人写好的库的作用.且maven可以轻松地和jenkins配合,从而使打包部署变得更容易. 但是也因为这样,我们变得更傻瓜了, ...
- std::max、std::min error C2589: “(”:“::”右边的非法标记,error C2059: 语法错误:“::”
在VC++种同时包含头文件#include <windows.h>和#include <algorithm>后就会出现无法正常使用std标准库中的min和max模板函数,经过查 ...
- Node.js的线程和进程
http://www.admin10000.com/document/4196.html 前言 很多Node.js初学者都会有这样的疑惑,Node.js到底是单线程的还是多线程的?通过本章的学习,能够 ...
- HBase面试问题
一.HBase的特点是什么 1.HBase一个分布式的基于列式存储的数据库,基于hadoop的hdfs存储,zookeeper进行管理. 2.HBase适合存储半结构化或非结构化数据,对于数据结构字段 ...
- Spark大数据针对性问题。
1.海量日志数据,提取出某日访问百度次数最多的那个IP. 解决方案:首先是将这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中.注意到IP是32位的,最多有个2^32个IP.同样可以采 ...
- [转] Node.js的线程和进程
[From] http://www.admin10000.com/document/4196.html 前言 很多Node.js初学者都会有这样的疑惑,Node.js到底是单线程的还是多线程的?通过本 ...
随机推荐
- invalid application of `sizeof' to incomplete type `char[] '
在写代码时,我想用extern来关联一个数组,然后利用sizeof计算数组的大小,代码如下: ... extern char a[]; #define b size=(sizeof(a)/sizeof ...
- ASP.NET-入门
MVC5特点 1.One ASP.NET统一平台 2.Bootstrap 免费CSS,响应式页面 3.路由标记属性:简单.控制器.操作.前缀.参数.URL 4.ASP.NET web API 2 : ...
- Android native CursorWindow数据保存原理
我们通过Uri查询数据库所得到的数据集,保存在native层的CursorWindow中.CursorWindow的实质是共享内存的抽象,以实现跨进程数据共享.共享内存所採用的实现方式是文件映射. 在 ...
- debian mysql 定时自己主动备份的脚本
#!/bin/sh LOG=/var/log/mysql-backup.log # mysql db info USER_ROOT=XXXXXX USER_PWD=XXXXXXX # mysql da ...
- iOS开发实践之xib载入注意问题
xib都会addSubview加入到控制器view中时程序崩溃.错误提示: 'NSInvalidArgumentException', reason: '-[ UITapGestureRecogniz ...
- Found conflicts between different versions of the same dependent assembly that could not be resolved
https://stackoverflow.com/questions/24772053/found-conflicts-between-different-versions-of-the-same- ...
- hdoj--1384--Intervals(差分约束)
Intervals Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- correct ways to define variables in python
http://stackoverflow.com/questions/9056957/correct-way-to-define-class-variables-in-python later say ...
- Array数组的排序与二分查字法
import java.util.Arrays; public class sort { public static void main(String[] args) { // TODO 自动生成的方 ...
- OC冒泡排序算法
面试的时候很多公司会要求写一个冒泡排序算法,于是用OC写了一个,代码如下所示 需要注意的事项:oc数组只能存放oc对象,因此遍历数组输出的时候,记得通过NSString对象转换成intValue #i ...