Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
1

Получить адрес не статического метода класса

25.01.2016, 21:45. Показов 3436. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Можно ли получить адресс не статического метода класса (статического можно - пробовал).
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.01.2016, 21:45
Ответы с готовыми решениями:

Вызов статического метода из другого класса
Добрый день. Есть MAIN.cpp: STDMETHODIMP CMAIN::Function1(VARIANT Data,BYTE* pBuff) { ...

Классы: как из статического метода обратиться к статической переменной класса
Классы: как из статического метода обратиться к статической переменной класса

Получить адрес метода в классе через экземпляр класса
Здравствуйте знатоки! Прошу помощи. Переношу один проэкт с скриптового языка питон на обжпаскаль и...

Инициализация переменных класса из статического метода этого же класса
Такой вопрос. Есть класс: class C1 { public: static void* Function(void *ptr) { ... ...

3
18894 / 9852 / 2410
Регистрация: 30.01.2014
Сообщений: 17,295
25.01.2016, 21:50 2
Цитата Сообщение от anti-k Посмотреть сообщение
Можно ли получить адресс не статического метода класса
Можно. В чем трудность?
0
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
25.01.2016, 21:59  [ТС] 3
DrOffset,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class A{
public:
    virtual void foo ()=0;
};
class B: public A{
public:
   void foo () {}
   static void foo1(){}
   void foo2(){}
};
int main()
{
 B ob;
cout << ob.foo1; //ето работает (не член класа), как визвать адреса остальних методов
}
0
18894 / 9852 / 2410
Регистрация: 30.01.2014
Сообщений: 17,295
25.01.2016, 22:10 4
Лучший ответ Сообщение было отмечено anti-k как решение

Решение

anti-k,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class A
{
public:
   virtual void foo ()=0;
};
 
class B : public A
{
public:
   void foo () {}
   static void foo1(){}
   void foo2(){}
};
 
int main()
{
  typedef void (B::* BMemfun_ptr_t)();
 
  BMemfun_ptr_t foop  = &B::foo;
  BMemfun_ptr_t foo2p = &B::foo2;
    
  typedef void (* BStFun_ptr_t)();
    
  BStFun_ptr_t  foo1p = &B::foo1;  
}
Сразу предупреждаю, что указатель на функцию-член (первые две записи), это не совсем обычный адрес (на самом деле это адрес + служебные данные для обеспечения работы с виртуальностью и наследованием), поэтому просто так вывести его на экран не получится. Но обычно это и не требуется.
0
25.01.2016, 22:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2016, 22:10
Помогаю со студенческими работами здесь

Вызов метода из статического класса
Как говорится, есть два класса - Tweet и статичный класс StringHelper. В одном константа...

Вызов статического метода абстрактного класса
возможно ли вызвать статический метод из абстрактного класса? это делается только с помощью...

Вызов метода статического класса из сборки
Как вызвать метод статического класса из сборки? Сборку я подгрузил, а дальше?

Вызов статического метода класса в другом классе
Как вызвать статический метод из одного класса в другом? вот этот код не работает class A{...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru