C++代码如下:
#include <iostream>
using namespace std;
/*使用指针交换两个整数*/
void swap_ptr(int *a, int *b)
{
int tmp = *a;
*a = *b;
*b = tmp;
}
/*使用引用交换两个整数*/
void swap_ref(int &a, int &b)
{
int tmp = a;
a = b;
b = tmp;
}
//测试代码
int main(int argc, char *argv[])
{
int a = 10;
int b = 20;
//调用类型的函数
swap_ptr(&a, &b);
cout<<"Use swap by pointer, a="<<a<<", b="<<b<<endl;
//调用引用类型的函数
swap_ref(a, b);
cout<<"Use swap by reference, a="<<a<<", b="<<b<<endl;
return 0;
}
运行结果:
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/b999a9014c086e06d60144f904087bf40bd1cbd3?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
追问它要用重载函数实现,怎么搞
Swap-后面不一样,这两个算是同名函数吗
追答哦,对搞错了 ,名字改一下就行了。使用引用类型的函数改一下:
#include <iostream>
using namespace std;
//参数类型为指针
//要注意,C++标准库中已经有一个叫swap的函数
//所以这里用my_swap
void my_swap(int *a, int *b)
{
int tmp = *a;
*a = *b;
*b = tmp;
}
//参数类型为引用
void my_swap(int &a, int &b)
{
int tmp = a;
a = b;
b = tmp;
}
int main(int argc, char *argv[])
{
int a = 10;
int b = 20;
//调用指针类型的函数
my_swap(&a, &b);
cout<<"Use swap by pointer, a="<<a<<", b="<<b<<endl;
//调用引用类型的函数
my_swap(a, b);
cout<<"Use swap by reference, a="<<a<<", b="<<b<<endl;
return 0;
}
追问这可以,谢谢了