1. 命名空间函数冲突
#include <iostream>
using namespace std;
//using std::cout;
//using std::endl;
template<class T>
T max(T m1, T m2) {
return (m1 > m2) ? m1 : m2;
}
int main() {
cout << max(2, 5) << endl;
return 0;
}
你看, 命名空间也有一个max方法, 你自己也有一个max方法,都是全局的, 编译器蒙了.
随风说了: 尽量少用命名空间, 你用别人的东西 , 你就得防着这种错误. 实在要用, 用using std::cout. 这样用吧.
不断更新中...