mam taki kodzik
class b;
class a
{
friend class b;
private:
int i;
public:
inline b* func() { return new b(); };//błąd
}
class b
{
public:
b() {};
inline void somefunc() { ... egzemplarzklasyb.i (odwolanie do prywatnej zmiennej jako friend)... };
}
a błąd jest taki, że nie moge uzyc konstruktora klasy b, bo jest ona jeszcze nie zadeklarowana. Z kolei jak zamienie miejscami deklaracje klas to klasa b nie bedzie jeszcze friend'em klasy i nie bedzie mogla uzyc prywatnego "i" w funkcji somefunc()