VS 2017 写C++ 函数模板程序总是报错怎么回事?

代码是正确的:
#include <iostream>
template <typename T>
void swap(T &a, T &b);

int main()
{
using namespace std;
int i = 10;
int j =20;
swap (i,j);
cout << i << endl;
cout << j << endl;
return 0;
}

template <typename T>
void swap(T &a, T &b)
{
T = temp;
temp = a;
a = b;
b = temp;
}

第1个回答  2017-11-23
//语法上的问题,重载不明确,以及缺少std,
#include <iostream>
using namespace std;
template<typename T>
void swapT(T &a, T &b);

int main() {
using namespace std;
int i = 10;
int j = 20;
swapT(i, j);
cout << i << endl;
cout << j << endl;
return 0;
}

template<typename T>
void swapT(T &a, T &b) {
T temp;
temp = a;
a = b;
b = temp;
}

第2个回答  2017-11-23

有两个错误:

    swap 函数名和标准有冲突。

    T = temp; 改为 T temp;

追问

没发现函数名和标准有冲突这个地方,谢谢!

追答

哦,这样呀。

追问

嗯,就是在编译的时候显示这个错误,把s大写之后就好了,这就是规则嘛😂😂😂

本回答被提问者和网友采纳
相似回答