PavelK
@PavelK

Как можно подменить вызов функции в классе?

Доброй ночи!
Как можно подменить вызов функции?
Например есть класс myClass
а в нём функции
int myFunct1(double b);
int myFunct2(double b);

т.е. отличаются только названиями.

Как можно подменить (только через указатели) вызов одной на другую?
  • Вопрос задан
  • 530 просмотров
Решения вопроса 1
Сделать функции виртуальными и при создании объекта поменять указатели в таблице виртуальных функций.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@sitev_ru
sitev.ru - мой блог ...
"Нужно, что бы снаружи класса функция myFunct1 вызывалась как обычно, но на самом деле вызывалась myFunct2."

Может всё намного проще?

int myFunct1(double b) {
  return myFunct2(b);
}
Ответ написан
Nipheris
@Nipheris Куратор тега C++
Вызывать обе с помощью указателя на метод. Вы в вопросе уже ответ написали.
Ответ написан
AtomKrieg
@AtomKrieg
Давай я поищу в Google за тебя
Паттерн "стратегия"
Если в компайл-тайм, то через шаблоны можно выбирать алгоритмы в зависимости от константы
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы