我用指针解决了任务。但是我想问一下是否有可能用&引用来调用函数。我认为这样会更容易理解。
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
的使用,它似乎是指向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]);
在您的代码中,您具有函数参数指针a
:
void sortieren(cBruch* a, int anzahl)
被解引用为数组:
if (*(a + i) > * (a + i + 1))
所以,不,a
不能更改为任何类型的引用。