自定义swap函数
题目
简介:这是一个软考和c++考试的一个经典面试题,给出5空,然后了,检测swap函数怎么写,主要考察的就是对于指针与引用的理解,难点为,很多人都不知道第三空填啥,因为我们通常写的c++的swap函数没有这一行,下面给出我的答案。
void swap(int& ra, int * pb)
{
int *ptemp = new int;
*ptemp = ra;
//第一空
// 第二空
// 第三空
}
int main()
{
int a = 5, b = 6;
swap( /*第四空*/ , /*第五空*/ );
return 0;
}
答案:
void swap(int& ra, int * pb)
{
int *ptemp = new int;
*ptemp = ra;
//第一空
ra = *pb;
// 第二空
*pb = *ptemp;
// 第三空
delete ptemp; // 这空就是释放内存
}
int main()
{
int a = 5, b = 6;
swap( a , &b );
return 0;
}