下面一段代码实现变量互换
#include<iostream>
using namespace std;
struct Test{
int a;
char b;
};
template<class T>
void swap(T *a, T *b){
*a = *a + *b;
*b = *a - *b;
*a = *a - *b;
}
int main()
{
Test t1,t2;
t1.a = 3;
t1.b = 'a';
t2.a = 4;
t2.b = 'b';
swap(t1, t2);
cout << t1.a << " " << t1.b << endl;
cout << t2.a << " " << t2.b << endl;
}
开始还在想这个swap是如何实现两个值互换的,后来发现main的swap调用的是STL库中的algorithm函数库,而不是自定义的swap函数,呵呵。
统一把swap改名为change后会编译不过
root:~/test # g++ a.cpp a.cpp: In function ‘int main()’: a.cpp:24: error: no matching function for call to ‘change(Test&, Test&)’