#include "iostream" using namespace std; template <typename T> void swap(T &a, T &b) { T tmp = a; a = b; b = tmp; a++; b++; } void TestSwap() { int iA = 10; int iB = 20; double dC = 1.1; double dD = 2.1; char *str1 = "ABC"; char *str2 = "abc"; ::swap(iA, iB); cout << iA << "," << iB << endl; std::swap(dC, dD); cout << dC << "," << dD << endl; ::swap(str1, str2); cout << str1 << ", " << str2 << endl; } int main() { TestSwap(); system("pause"); return 0; }
双冒号代表的是作用域,若加上双冒号指全局作用域。