Cześć. Problem dotyczy konwersji wskaźnika jednej klasy na drugą. Domyślam się, że brakuje operatora &, lecz nie spotkałem się z wykorzystaniem go w internecie - stąd prośba o pomoc. Poniżej zamieszczam prosty kod:
#include <iostream.h>
class Test {
public:
int a;
Test () : a(0) {}
};
class Lol {
public:
int a;
Lol () : a(0) {}
};
void fun (Test * test)
{
cout << "obiekt wew fun przed operatorem = " << test->a << endl;
test->a = 3;
cout << "obiekt wew fun po operatorze = " << test->a << endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
Lol obiekt;
obiekt.a = 9;
cout << "obiekt przed fun: " << obiekt.a << endl;
fun(&obiekt);
cout << "obiekt po fun: " << obiekt.a << endl;
cin.get();
return 0;
}
Dziedziczenie niejako rozwiązuje problem kompilacji, ale wynik nie jest zgody z oczekiwaniem. Poza tym, czy jest w ogóle konieczne?
obiekt przed fun: 9
obiekt wew fun przed operatorem = 0 (powinno być 9)
obiekt wew fun po operatorze = 3
obiekt po fun: 9 (powinno być 3)