最近在学习c++,今天在看书时,敲了几行代码:
void swap(const int &a, int &b);
int main()
{
using namespace std;
int x = 1, y =2;
swap(x, y);
cout << "x = " << x << endl;
cout << "y = " << y << endl;
return 0;
}
void swap(const int &a, int &b)
{
int temp;
temp = a;
//a = b;
b = temp;
//return 0;
}
运行结果是:x = 2
y = 1
很纳闷,为什么会这样,明明已经对x用const进行了限定,怎么还是变化了,看了半天也没发现什么,吃过晚饭,和女朋友一起讨论这件事,在她电脑上把这个程序敲了上去,两个人一起看了会,还是没有什么发现,我突然灵机一动,把swap全部改成大写的Swap,运行后,x = 1 y = 1。原来这个swap是库函数,但是怎么样用自己的swap了,把using namespace std去掉,直接用std::cout, std::endl就行了。