Slayerz
|
||||||
#1 | ||||||
Перегрузка функции. Зависимость от формулы - C++11.08.2012, 17:14. Просмотров 486. Ответов 2
Метки нет Все метки)
(
Добрый день! Работаю с перегрузкой функции, но необходимо реализовать выбор зависимой формулы, благодаря которой будут считаться все функции.
Это заголовочный файл в котором содержатся вычисляемые функции, но имеется переменная r, от которой зависят все формулы. Имеется два вида формул вычисления r. Если инициализировать выбор через switch, то программа, каждый раз обращаясь за r, требует по новой его выбрать, а необходимо, чтобы r была выбрана в начале выполнения программы 1 раз и счет происходил именно с этим вариантом r до конца выполнения всех расчетов. Вычисления проводятся в другом заголовочном файле, где описан необходимый метод вычисления через класс, туда и подключается эта перегрузка. Уже пару дней пробую различные варианты, но никак не доходит, как это правильно реализовать.
0
|
|
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
|
11.08.2012, 17:14 |
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Перегрузка функции. Зависимость от формулы (C++):
2
Вычислить функции с использованием их разложения в степенной ряд. Функции и Перегрузка функций - C++
Перегрузка операторной функции и функции ! - C++ Перегрузка функции - C++ Перегрузка функции - C++ |
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
|
||||||
11.08.2012, 17:25 | #2 | |||||
Перегрузка выполняется статически. При компиляции. Она не обеспечивает динамический выбор функции в процессе выполнения программы.
Для динамического выбора надо воспользоваться механизмом виртуальных функций: делаете абстрактный класс «Вычислитель r» с виртуальной функцией «вычислить r», делаете сколько надо наследников от этого класса (конкретных классов-вычислителей), в каждом из них реализуется свой вариант вычисления r; свичем выбираете, какой вариант нужен, создаёте (динамически, с помощью new) нужный экземпляр конкретного класса-вычислителя, приводите его к базовому типу интерфейса «Вычислитель r» и возвращаете такой указатель. Или же можно воспользоваться вариантом «для бедных»: указателем на функцию. Иллюстрация:
1
|
Slayerz
|
|
11.08.2012, 17:39 [ТС] | #3 |
Спасибо, сейчас попробую разобраться.
0
|
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
|
11.08.2012, 17:39 |
Привет! Вот еще темы с ответами:
3
Перегрузка функции - C++ Перегрузка функции - C++ перегрузка функции - C++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |