Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вызов метода класса по ссылке на него(Borland C++) 
:(
    Опции темы
silversmith
Дата 28.1.2010, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 18.12.2007
Где: Донецк, Украина

Репутация: нет
Всего: нет



Объявлен указатель на метод класса следующим образом
Код

class Myclass;
typedef void (Myclass::*func)(void);


затем в самом классе содержится объявление указателя и метода:
Код

class Myclass{
public:
     func action;
     void function(void){
          //здесь выполняются какие-то действия
     }
     void tryfuncpointer{
          action = &Myclass::function;
     }
}


Вопрос в том - как вызвать теперь функцию-член класса function по указателю action. Пробовал разные варианты action(), (*action)(), (Myclass::action)(), (Myclass::*action)() и т.п. но ни один из них компилятор не пропускает говоря, что оператор () не может быть применен к указателю на член класса action.
PM MAIL WWW ICQ   Вверх
NewDima
Дата 28.1.2010, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: нет
Всего: 12



нужно указать экземпляр класса, в контексте которого требуется выполнить метод, например так:
Код

(this->*action)();

PM ICQ   Вверх
silversmith
Дата 28.1.2010, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 18.12.2007
Где: Донецк, Украина

Репутация: нет
Всего: нет



Мда, ларчик просто открывался. Спасибо smile
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0805 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.