Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 26.07.2009
Сообщений: 14

фича с ссылками на функцию

30.01.2010, 19:15. Показов 637. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
допустим имеется класс:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class figure {
public:
    void rectangle(void (*mult)(void)); // ф-я ссылается на ф-ю
    void draw(void);                  // некая ф-я или proc
};
 
/*
   описываю rectangle
*/
void figure::rectangle(void (*mult)(void)) {
    mult();
}
 
/*
   теперь мне хотелось бы узнать, как вызвать rectangle
   внутри какой-либо функции, которая является членом этого же класса, т.е. содержимое 
   функции на которую ссылается rectangle меня не интересует
*/
void figure::draw(void) {
      rectangle(mult);           // конечно же, НЕВЕРНО, что же здесь нужно написать?
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.01.2010, 19:15
Ответы с готовыми решениями:

Фича
Седня обнаружил что если в таблице создать поле, на нем поставить курсор и нажатием Ctrl + "стрелка вниз" или Ctrl +...

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

Баг или фича?
Здраствуйте. Читая главу о локализации книги Гослинга, Арнольда, Холмса "Язык программирования Java 3е издание" (господи, люди, может...

6
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
30.01.2010, 19:44
void rectangle(void (figure::*zzz)())
{
(this->*zzz)();
}

xxx(&figure::draw);

примерно как-то так
0
0 / 0 / 0
Регистрация: 26.07.2009
Сообщений: 14
30.01.2010, 19:53  [ТС]
а что предполагается под xxx?
0
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
30.01.2010, 19:58
globo,

а что предполагается под xxx?

любая функция, которой можно передать указатель на функцию-мембер, например rectangle
0
0 / 0 / 0
Регистрация: 26.07.2009
Сообщений: 14
30.01.2010, 20:15  [ТС]
ааа. получается figure::*zzz нужно будет тоже объявить как член класса. а можно ли как то избежать этого?
0
Эксперт С++
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
30.01.2010, 21:08
Вообще-то эта тема является классическим примером в объяснении полиморфизма и виртуальных функций. Так что надо серьёзно подумать над тем, не надо ли сделать ли нечто такое:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class figure {
public:
    virtual void draw() const = 0;
};
 
class rectangle: public figure {
public:
    virtual void draw() const { /* Нарисовать прямоугольник здесь*/;}
    rectangle(int x, int y, int width, int height);
private:
    int x_, y_, width_, height_;
};
 
class ellipse: public figure {
public:
    virtual void draw() const { /* Нарисовать эллипс здесь*/;}
    ellipse(int x, int y, int radius1, int radius2);
private:
    int x_, y_, radius1_, radius2_;
};
0
0 / 0 / 0
Регистрация: 26.07.2009
Сообщений: 14
30.01.2010, 21:32  [ТС]
да не надо мне разрабатывать сам класс ))) я просто объяснил на примере figure ))) ну в принципе суть ясна буду разбираться... главное что подобное возможно, хотя и не так, как я предполагал...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.01.2010, 21:32
Помогаю со студенческими работами здесь

Глюк?! Или фича
Таблицы лежат на сервере, интерфейс к ним на локальной машине. Есть одно ключевое поле ИД (счетчик). При добавлении записи пользователем,...

Новая фича в картинках
Сабж. http://visual.images.yandex.ru/sights/ P.S. В конце так и видится надпись с предложением отправить смс.

Баг или фича
решил проверить на своем VS 2008 присвоение в сравнении написал char buf; char *buf1; if(buf1=buf) все прошло никакого...

Забавная фича C++ Builder 6
Может, я не первый, кто это открыл, но сегодня я кое-что выяснил. Рассмотрим код #include <iostream.h> #include...

Баг или фича?
Всем привет. Вот какая интересная штука происходит с жизненным циклом активити. Если выходить из приложения "механической...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru