首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

为什么在些模版方法的时候,如果编写的方法名字在系统中存在了,则会出现编译异常

2012-02-28 
为什么在些模版方法的时候,如果编写的方法名字在系统中存在了,则会出现编译错误为什么在些模版方法的时候,

为什么在些模版方法的时候,如果编写的方法名字在系统中存在了,则会出现编译错误
为什么在些模版方法的时候,如果编写的方法名字在系统中存在了,则会出现编译错误,代码如下:
#ifndef   _MY_TEMPLATES_HPP_
#define   _MY_TEMPLATES_HPP_

//#include   "windows.h "

namespace   ason   {
namespace   math{
template   <typename   T>
inline   T   const&   max(const   T&   a,const   T&   b)   {
return   a> b?a:b;
}
template   <typename   T>
inline   T   const&   max(const   T&   a,const   T&   b,const   T&   c)   {
return   max <T> (max <T> (a,b),c);
}
}
}

#endif
若注视行//#include   "windows.h "打开,则出现编译错误。
因为系统已经定义过一个     max   宏了,在MSDN中的确可以找到,这个算是什么错误?



[解决办法]
因为“宏”优先
不要让自己写的任何东西和系统的宏重名。
发现重名了就改掉即可。

热点排行