Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Использование Методов - Друзей.

279
14 января 2006 года
bave
456 / / 07.03.2004
Не получается создать метод одного класса,
который был бы другом для другого класса.

Делаю так:

class uiText: public uiItem
{
public:
//...
//...
};

class GLRENDER
{
public:
friend void uiText:: glPrint(GLuint x, GLuint y, char* );
//...
};
чё не так делаю... а то линковшик начиает орать,
что uiText не может метод glPrint() использовать.
299
14 января 2006 года
3D Bob
885 / / 18.04.2005
А что ты хочешь получить?
Помни главное правило, дружба дается, а не берется.
А данном примере ты предоставляешь
void uiText::glPrint(GLuint x, GLuint y, char* );
иметь приватный доступ к классу GLRENDER, но
uiTextне содержит ф-ции glPrint.
279
14 января 2006 года
bave
456 / / 07.03.2004


Мне нужна возможность использовать внутри методов
класса uiText, метод - glPrint.
Не обявлять же мне uiText ради одного glPrint
потомком от GLRENDER, тем более что в GLRENDER
полно того что uiText быть не должно.
1.8K
14 января 2006 года
k3Eahn
365 / / 19.12.2005
Дык друзья вроде нужны чтобы получить доступ к защищённым членам класса(private,protected) из метода,функции не являющейся членом класса.
1.8K
14 января 2006 года
k3Eahn
365 / / 19.12.2005
Код:
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(...);
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог