powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как кастить методы из разных классов
10 сообщений из 10, страница 1 из 1
Как кастить методы из разных классов
    #37973655
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не компилируется.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
#include <iostream>
using namespace std;

int chopper(int (*getEater)()) { return getEater(); }

class A { public: int jitter() { return 3; } };
class B { public: int farm() { return 15; } };

int main()
{
    std::cout << chopper(А::jitter) << chopper(B::farm);
    return 0;
}



Подскажите, как в этом случае проще всего закастить методы jitter и farm, чтобы chopper их проглатывал, ведь рожа у них у всех одинаковая...
...
Рейтинг: 0 / 0
Как кастить методы из разных классов
    #37973672
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumix,
>> Подскажите, как в этом случае проще всего закастить методы jitter и farm, чтобы chopper их проглатывал
никак. кастом такое не делается. std::mem_fun в помощь

>> ведь рожа у них у всех одинаковая...
нет. у них разная рожа. У них отличается указатель на this, и имя у них тоже разное.
...
Рейтинг: 0 / 0
Как кастить методы из разных классов
    #37973792
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Код: plaintext
1.
2.
3.
class A { public: static int jitter() { return 3; } };
class B { public: static int farm() { return 15; } };
                  ^^^^^^                        
...
Рейтинг: 0 / 0
Как кастить методы из разных классов
    #37975942
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
static

Гениально!!! Работает!!

более того, я даже ещё раз прочитав про статические методы класса нашел строчку, что статики преимущественно и юзаются для колбеков.

Спасиииииииииибо!!
...
Рейтинг: 0 / 0
Как кастить методы из разных классов
    #37975947
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LumixЭто не компилируется.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
#include <iostream>
using namespace std;

int chopper(int (*getEater)()) { return getEater(); }

class A { public: int jitter() { return 3; } };
class B { public: int farm() { return 15; } };

int main()
{
    std::cout << chopper(А::jitter) << chopper(B::farm);
    return 0;
}



Подскажите, как в этом случае проще всего закастить методы jitter и farm, чтобы chopper их проглатывал, ведь рожа у них у всех одинаковая...

Как раз рожа у них разная, поэтому— никак.
...
Рейтинг: 0 / 0
Как кастить методы из разных классов
    #37975972
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumixstatic

Гениально!!! Работает!!

более того, я даже ещё раз прочитав про статические методы класса нашел строчку, что статики преимущественно и юзаются для колбеков.

Спасиииииииииибо!!
Проблема в том что колбэки из статических методов без арументов, передающих состояние, практически бесполезны.
...
Рейтинг: 0 / 0
Как кастить методы из разных классов
    #37976001
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky, колбек сам по себе - это уже состояние.
...
Рейтинг: 0 / 0
Как кастить методы из разных классов
    #37990864
pravakatar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LumixAnatoly Moskovsky, колбек сам по себе - это уже состояние.
да ну, и какое же?
...
Рейтинг: 0 / 0
Как кастить методы из разных классов
    #37990964
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lumix, кто тебе это показал и зачем?
...
Рейтинг: 0 / 0
Как кастить методы из разных классов
    #37990987
функтор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LumixЭто не компилируется.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
#include <iostream>
using namespace std;

int chopper(int (*getEater)()) { return getEater(); }

class A { public: int jitter() { return 3; } };
class B { public: int farm() { return 15; } };

int main()
{
    std::cout << chopper(А::jitter) << chopper(B::farm);
    return 0;
}



Подскажите, как в этом случае проще всего закастить методы jitter и farm, чтобы chopper их проглатывал, ведь рожа у них у всех одинаковая...
А функтор не пойдет?
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как кастить методы из разных классов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]