class GLRENDER;
class uiText: public uiTem
{
void uiglPrint(GLRENDER& glr);
};
class GLRENDER
{
private:
void glPrint(GLuint x, GLuint y, char*);
friend void uiText:: uiglPrint(GLRENDER&) ;
};
void GLRENDER::glPrint(GLuint x, GLuint y, char*)
{
};
void uiText::uiglPrint(GLRENDER& glr)
{
glr.glPrint(...);
}
Использование Методов - Друзей.
который был бы другом для другого класса.
Делаю так:
class uiText: public uiItem
{
public:
//...
//...
};
class GLRENDER
{
public:
friend void uiText:: glPrint(GLuint x, GLuint y, char* );
//...
};
чё не так делаю... а то линковшик начиает орать,
что uiText не может метод glPrint() использовать.
Помни главное правило, дружба дается, а не берется.
А данном примере ты предоставляешь
void uiText::glPrint(GLuint x, GLuint y, char* );
иметь приватный доступ к классу GLRENDER, но
uiTextне содержит ф-ции glPrint.
Мне нужна возможность использовать внутри методов
класса uiText, метод - glPrint.
Не обявлять же мне uiText ради одного glPrint
потомком от GLRENDER, тем более что в GLRENDER
полно того что uiText быть не должно.
Дык друзья вроде нужны чтобы получить доступ к защищённым членам класса(private,protected) из метода,функции не являющейся членом класса.