Nasunęło mi się takie pytanie do tego kodu:
#include <iostream>
using namespace std;
class B;
class A;
class A
{
public:
B *p;
int a;
public:
int funa();
};
class B
{
public:
int b;
A x;
public:
int funb()
{
return 25;
}
};
int A::funa()
{
cout<<p->funb()<<endl;
}
int main()
{
A x;
x.funa();
x.p->b=5;
cout<<x.p->b<<endl;
return 0;
}
~
~
Na co wskazuje wskaźnik p? Wiem, że to wskaźnik wskazujący na obiekt klasy B, ale aktualnie nie ma w sobie żadnego adresu takiego obiektu. Tworzę go, czyli de facto nie wskazuje na nic, ale mogę za jego pomocą używać metod z klasy do której należy. Działa też x.p->b , pomimo, że ten wskaźnik nie wskazuje na żaden obiekt. Żadnego obiektu klasy B nawet nie stworzyłem.