Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Есть ли альтернатива указателю на функцию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Оператор with http://www.cyberforum.ru/cpp-beginners/thread900515.html
В C++ есть аналог оператора with как в Delphi?
C++ дано 5 действительных чисел, Вычислить квадратный корень из модуля их произведения дано 5 действительных чисел, Вычислить квадратный корень из модуля их произведения(одномерный масив) Последующее дублирование тем (п. 5.5) и/или игнорирование п. 1.4 ("Официальными языками форума... http://www.cyberforum.ru/cpp-beginners/thread900499.html
Развязывание задачи при использовании циклов C++
C++ с++. удаление по условию
помогитес с++ (сделал в pascal'е а в с++ не получается) из текста, который содержит данные о фамилии, годе рождения и профессии, выбрать только те предложения, в которых год рождения больше...
C++ Удаление по условию http://www.cyberforum.ru/cpp-beginners/thread900452.html
помогитес с++ (сделал в pascal'е а в с++ не получается) из текста, который содержит данные о фамилии, годе рождения и профессии, выбрать только те предложения, в которых год рождения больше...
C++ циклы подробнее

Показать сообщение отдельно
Cynacyn
33 / 33 / 0
Регистрация: 02.05.2013
Сообщений: 109

Есть ли альтернатива указателю на функцию - C++

13.06.2013, 13:04. Просмотров 331. Ответов 4
Метки (Все метки)

Добрый день!
Я решаю упражнение из книжки Страуструпа, в котором необходимо создать класс, который хранит параметры конcтруктора в своих данных членах, одним из параметров является функция.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
typedef double Func(double);
 
struct Fct {
    Fct(Func& f, double r, int count)
        : function(f), rr(r), step(count) 
    {}
 
    void set_function(Func& ff) { function = ff; } // да это неправильно,
// но я надеюсь идея того что мне нужно понятна
 
private:
 
    Func& function; // изменения в коде класса, 
//который расположен ниже происходят только в этой строке
    double rr;
    int step;
 
};
Я не могу сохранить его как "значение", я могу только хранить ссылку на него.
Мне необходима возможно менять ссылку на этот объект, и тут я зашел в тупик, потому что единственный выход, который я вижу - использовать указатели.
Но по материалу книги - мы не проходили указатели. Я знаю о них из другой книги, поэтому меня гложат сомнения.

Пример с указателями:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
struct Fct {
    Fct(Func& f, double r, int count)
        : function(f), rr(r), step(count) 
    {}
 
    void set_function(Func& ff) { function = ff; } // работает
 
private:
 
    Func* function; // указатель
    double rr;
    int step;
 
};

Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru