Mam taką oto deklarację funkcji:
Court::CHECK_COURT_RESULT findCourt(Signature &sg, const std::wstring &closeBeforePart, const Court*& crt, const stools::DateTime& issuanceDate) const;
Jakieś tam jej wywołanie:
Court *crt = NULL;
courtRes = findCourt(sig,closePart,crt,lnk.getActionTime());
I błąd, który pojawił się po konwersji z VS2003 na VS2008:
cannot convert parameter 3 from 'Court *' to 'const Court *&'
Robiąc rozeznanie w temacie trafiłam na fajny topik na forum, gdzie ziom dokładnie wyjaśnia różnice między referencją a wskaźnikiem a przy okazji podaje też takie coś:
short *w;
short *&r=w; // r jest referencją na w
int a=3,b=4;
void swap(int *x,int *y) { int t=*x; *x=*y; *y=t; } // zamiana wartości przez wskaźniki
void swap(int &x,int &y) { int t=x; x=y; y=t; } // zamiana wartości przez referencje
swap(&a,&b); // wywołanie funkcji zamiany wartości przez wskaźniki
swap(a,b); // wywołanie funkcji zamiany wartości przez referencje
Ha, ale jak wywołać funkcję, która jako parametr przyjmuje referencję na wskaźnik? :)
Kombinowałam z:
Court *crt = NULL;
courtRes = findCourt(sig,closePart,&crt,lnk.getActionTime());
Ale to daje oczywiście błąd, cannot convert parameter 3 from 'Court **' to 'const Court *&'