使用指针的交换功能

时间:2017-11-02 04:09:44

标签: c++ templates pointers generics swap

因此,对于赋值,我必须编写一个模板函数,它将成功交换任何类型的两个值。我还必须验证此函数也可以使用指针。显然,彻底的输出将演示指针的交换,但不会交换它们指向的值。

我对如何开始有一个大概的想法,但不知道在哪里开始。

这是我到目前为止所拥有的。

template <typename T>

void swap(T*& first, T*& second) 
{

T* a = nullptr;

a = first;
first = second;
second = a;

std::cout << first << " " << second << " ";



}

我已经获得了功能原型,但是不知道该怎么做,有关如何调用此功能的任何建议以及它是否真的能为我提供所需的输出?

这是我的主要

int main()
{
    swap(10, 20);

    system("pause");

}

谢谢!

1 个答案:

答案 0 :(得分:0)

您的模板函数需要指向T的参数作为参数。你的代码

int main()
{
    swap(10, 20);

    system("pause");

}

不会使用指针调用它,而是使用整数文字值。您应该使用什么来调用您的函数

int main() {
    int var1 = 42;
    int var2 = 15;
    int* pvar1 = &var1;
    int* pvar2 = &var2;

    swap(pvar1,pvar2);
}