Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2011, 16:20   #1
Kukurudza
Форумчанин
 
Регистрация: 02.06.2011
Сообщений: 282
По умолчанию передача функции в конструктор класса

хочу функцию вот такого вида:
double f (double, double);
посылать в конструктор класса. как это сделать правильно? эта функция будет вызываться в конструкторе очень много раз.
Kukurudza вне форума Ответить с цитированием
Старый 03.12.2011, 16:51   #2
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Код:
class C
{
public:
     C(double (*)(double, double));
};

C::C(double (*f)(double, double))
{
    for(int i = 0; i < 100500; i++)
        (*f)(3.0, 5.0);
}
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 03.12.2011, 17:04   #3
_Ч_
Форумчанин
 
Регистрация: 07.01.2010
Сообщений: 141
По умолчанию

маленькие улучшения:
в public секции сделайте тайпдеф для типа такой ф-ии
typedef double (*Callback)(double, double);

Тогда вместо
Код:
C::C(double (*f)(double, double))
можно будет писать
Код:
C::C(Callback c)
_Ч_ вне форума Ответить с цитированием
Старый 03.12.2011, 17:36   #4
Kukurudza
Форумчанин
 
Регистрация: 02.06.2011
Сообщений: 282
По умолчанию

да, спасибо.
Kukurudza вне форума Ответить с цитированием
Старый 03.12.2011, 18:13   #5
Сыроежка
Форумчанин
 
Регистрация: 01.07.2011
Сообщений: 423
По умолчанию

Цитата:
Сообщение от Kukurudza Посмотреть сообщение
хочу функцию вот такого вида:
double f (double, double);
посылать в конструктор класса. как это сделать правильно? эта функция будет вызываться в конструкторе очень много раз.
Если вы собираетесь вызывать одну и ту же функцию для конструктора класса, то нет смысла ее объявлять в качестве параметра класса. Вы и так сможете внешнюю функцию вызывать в теле своего конструктора
Со мной можно встретиться на www.clipper.borda.ru
Сыроежка вне форума Ответить с цитированием
Старый 03.12.2011, 20:40   #6
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

Цитата:
Сообщение от Сыроежка Посмотреть сообщение
Если вы собираетесь вызывать одну и ту же функцию для конструктора класса, то нет смысла ее объявлять в качестве параметра класса. Вы и так сможете внешнюю функцию вызывать в теле своего конструктора
.
разумно.
onewho вне форума Ответить с цитированием
Старый 04.12.2011, 08:31   #7
Kukurudza
Форумчанин
 
Регистрация: 02.06.2011
Сообщений: 282
По умолчанию

нет, я буду кидать туда различные функции, но именно такого вида.
Kukurudza вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конструктор шаблонного класса Hemul Общие вопросы C/C++ 1 01.07.2011 20:21
конструктор наследника абстрактного класса tiger() Visual C++ 5 15.05.2011 07:16
Конструктор класса наследующего от TFileStream YuryGunko Общие вопросы C/C++ 2 03.06.2010 22:02
Конструктор класса наследующего от TFileStream (BC++) YuryGunko Помощь студентам 0 03.06.2010 20:38
Конструктор класса XPAiN Общие вопросы Delphi 2 24.01.2010 15:00