Witam,
przerabiam temat przyjaźni zgodnie z kursem C++ K.Kuczmarskiego (xion) będącego częścią megatutoriala "Od zera do gier kodera".
Zatrzymałem się na temacie przyjaźni: metoda PrzecinajaSie() klasy CGeometryManager ma dostęp do wszystkich składników klasy CCircle. W przykładzie z kursu wygląda to tak:
// deklaracja zapowiadająca klasy CCircle
class CCircle;
class CGeometryManager
{
public:
bool PrzecinajaSie(CCircle&, CCircle&);
};
class CCircle
{
// (pomijamy resztę)
friend bool CGeometryManager::PrzecinajaSie(CCircle&, CCircle&);
};
Zmodyfikowałem powyższy przykład do takiej postaci, aby wypróbować jak to działa :
#include <iostream>
using namespace std;
class CCircle;
class CGeometryManager
{
public:
bool PrzecinajaSie(CCircle&c1, CCircle&c3)
{
cout<<c1.i<<endl; // Error: member CCircle::i (declared at...) is inaccessible
return 0;
}
};
class CCircle
{
int i;
friend bool CGeometryManager::PrzecinajaSie(CCircle&, CCircle&);
};
I już na tym etapie VS pokazuje mi błąd, że zmienna i jest niedostępna.
Error: member CCircle::i (declared at...) is inaccessible
Może ktoś z Was potrafi mi pomóc, bo szczerze powiedziawszy od dwóch dni mnie to blokuje.