如何使用指针传递给函数的数组中对象的函数成员



所以这里有两个我正在处理的函数:

void Ville::sous_la_moyenne( int moyenne, Tableau<Quartier>* quartiersSousMoyenne )
{
for( int i = 0; i < nbQuartiers_; i++ )
{
if( quartiers_[i].get_revenuMoyen() < moyenne )
{
quartiersSousMoyenne->ajouter( quartiers_[i] );
}
}
}
void Ville::afficher_quartier_sous_moy( Tableau<Quartier>* quartiersSousMoyenne )
{
for( int i = 0; i < quartiersSousMoyenne->taille(); i++ )
{
cout << quartiersSousMoyenne[i]->get_nom() << " Revenu moyen:"
<< quartiersSousMoyenne[i]->set_revenuMoyen() << endl;
}
}

这不起作用:-quartiersSousMoyenne[i]->get_nom()-quartiersSousMoyenne[i]->set_revenuMoyen()

我尝试过:-quartiersSousMoyenne[i].get_nom()-*( quartiersSousMoyenne[i] ).get_nom()-*quartiersSousMoyenne[i].get_nom()-*(quartiersSousMoyenne + i).get_nom()

上面写着:"在‘Tableau’中没有名为‘set_revenuMoyen’的成员">

如果您在第一个名为sous_la_moyenne的函数中看到,有一个名为quartiers_Tableau的实例。我用[I]访问它的元素,然后使用函数get_revenuMoyen((,它是类Quartier的函数。

我现在想做同样的事情,但对于Tableau的指针。。。如果可能的话。

我成功地使它在没有指针的情况下工作,但我不想复制对象。

附言:不要试图理解变量名称的含义。。。我说法语:DTableau的意思是数组-这个很重要。

实际上TheArquitect给了我一个很好的建议。他说最好使用&(引用(,而不是*(指针(来传递对象。

它是这样工作的:

void Ville::afficher_quartier_sous_moy( Tableau<Quartier>& quartiersSousMoyenne )
{
for( int i = 0; i < quartiersSousMoyenne.taille(); i++ )
{
cout << quartiersSousMoyenne[i].get_nom() << " Revenu moyen:"
<< quartiersSousMoyenne[i].get_revenuMoyen() << endl;
}
}

我认为这个案子已经解决了。

最新更新