使用引用调用函数 &
Call Function with Reference &
我用指针解决了这个任务。但是我想问一下是否可以用 & 引用调用函数。
我认为这样会更容易理解。
void sortieren(cBruch* a, int anzahl)
{
for (int n = anzahl; n > 1; n--)
{
for (int i = 0; i < n - 1; i++)
{
if (*(a + i) > * (a + i + 1))
{
(a + i)->tausch((a + i), (a + i + 1));
}
}
}
}
在你的代码中你有函数参数指针 a
:
void sortieren(cBruch* a, int anzahl)
作为数组取消引用:
if (*(a + i) > * (a + i + 1))
所以,不,a
不能更改为任何类型的引用。
查看您对 a
的用法,它似乎是一个指向 cBruch
对象数组的指针。如果您需要使用这样的数组,则必须将参数保留为指针。但是,您可以更改它在函数中的使用方式。
void sortieren(cBruch* a, int anzahl)
{
for (int n = anzahl; n > 1; n--)
{
for (int i = 0; i < n - 1; i++)
{
if ( a[i] > a[i + 1])
{
a[i].tausch((a + i), (a + i + 1));
}
}
}
}
如果您将 cBrunch::tausch
更改为接受 cBruch&
而不是 cBruch*
,您可以将该函数的调用更改为:
a[i].tausch(a[i], a[i + 1]);
我用指针解决了这个任务。但是我想问一下是否可以用 & 引用调用函数。 我认为这样会更容易理解。
void sortieren(cBruch* a, int anzahl)
{
for (int n = anzahl; n > 1; n--)
{
for (int i = 0; i < n - 1; i++)
{
if (*(a + i) > * (a + i + 1))
{
(a + i)->tausch((a + i), (a + i + 1));
}
}
}
}
在你的代码中你有函数参数指针 a
:
void sortieren(cBruch* a, int anzahl)
作为数组取消引用:
if (*(a + i) > * (a + i + 1))
所以,不,a
不能更改为任何类型的引用。
查看您对 a
的用法,它似乎是一个指向 cBruch
对象数组的指针。如果您需要使用这样的数组,则必须将参数保留为指针。但是,您可以更改它在函数中的使用方式。
void sortieren(cBruch* a, int anzahl)
{
for (int n = anzahl; n > 1; n--)
{
for (int i = 0; i < n - 1; i++)
{
if ( a[i] > a[i + 1])
{
a[i].tausch((a + i), (a + i + 1));
}
}
}
}
如果您将 cBrunch::tausch
更改为接受 cBruch&
而不是 cBruch*
,您可以将该函数的调用更改为:
a[i].tausch(a[i], a[i + 1]);