关于c++分文件为什么cout写在源文件可以正常运行,写在另一个文件里就不可以了呢?

我是大二学生,在自学c++。今天学到分文件应用,在制作一个两个整数互换的代码时,我发现当我把cout放到源文件时,两个整数是正常互换的,像图片这样:

img


但当我把cout存放在“应用”这个文件里时,他却没有完成互换,像下图那样。

img


可我认为这个程序应该是可以运行的,所以对出现这样的情况我十分不解,还希望有teacher可以指教我一下。谢谢。

这就是值传递与地址传递的问题了,代码是没错的。
值传递就是你现在写的这个swap函数,当你调用函数的时候,该函数会产生实参的副本,相当于张三此时买了两瓶可乐,这时候李四调用了函数,李四也有两瓶可乐,当李四喝完一瓶,他是不会对张三造成影响的,这就是所谓的副本。
而地址传递相当于什么呢,我叫张三,今天18岁,那等过了十年后,我28岁,我还是张三,这就是地址传递。
使用引用可以简化地址传递,比如:swap(int &a,int &b)

在main里面的 swap需要用地址传递,不然交换不了。 比如swap(&a,&b)