C++编写重载函数实现两个整数交换(写出形参是指针类型和引用类型两个形式)

如题所述

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;
}

运行结果:

追问

它要用重载函数实现,怎么搞

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;
}

追问

这可以,谢谢了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-09-23
最新款式
相似回答