Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C / C++

Выпуск № 162
от 01.01.2003, 16:50

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 476
Отправлено ответов: 1052
Активность: 221.0 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Yuri Gordienko
Статус: Опытный
Общий рейтинг: 116.88
[Подробней >>]
barsik_
Статус: Опытный
Общий рейтинг: 157.01
Телефон: 058-840271
[Подробней >>]
Ramzes
Статус: Начальный
Общий рейтинг: 133.33
[Подробней >>]
 
Avl2k
Статус: Опытный
Общий рейтинг: 128.93
[Подробней >>]
Dzik
Статус: Профессиональный
Общий рейтинг: 114.87
URL: Разработка игрушек
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 108.04
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 472. Уважаемые эксперты! мне надо, чтобы можно было вызывать ту или иную функцию в зависимости от значени... (ответов: 6)

Вопросов: 1, ответов: 6


 Вопрос № 472

Уважаемые эксперты!
мне надо, чтобы можно было вызывать ту или иную функцию в зависимости от значения переменной. То есть, к примеру, если значение переменной==1, то вызываем функцию А, если ==2, то вызываем В. я думал, это можно сделать, настраивая указатель на нужную функцию, а потом вызывать то, на что этот указатель ссылается - но выдается "E2062 Invalid indirection". делал так:
int A(int a, int b) { ; }
int main(int argc, char* argv[])
{
int (*pfHash[2])(int, int);
pfHash[1]=A;
*pfHash[1](1,2);
return 0;
}
подскажите, где я не прав.
спасибо



Вопрос отправлен: 29.12.2002, 13:28
Отправитель: вова

[Следующий вопрос >>] [Список вопросов]

Отвечает Yuri Gordienko

Добрый день, вова!
Вызывай так:
pfHash[1](1,2);


Ответ отправлен: 29.12.2002, 17:12
Отправитель: Yuri Gordienko


Отвечает barsik_

Приветствую Вас, вова!
Poprobuy tak. U mena rabotaet.
Ne razimenovuy ukazatel.

Приложение:

Ответ отправлен: 29.12.2002, 16:48
Отправитель: barsik_


Отвечает Ramzes

Добрый день, вова!
Твоя ошибка здесъ
*pfHash[1](1, 2);
должно бытъ просто pfHash[1](1, 2)

Ответ отправлен: 30.12.2002, 10:39
Отправитель: Ramzes


Отвечает Avl2k

Приветствую Вас, вова!
Достаточно поставить скобки:
int A(int a, int b) { return 0; }
int B(int a, int b) { return 1; }
int main(int argc, char* argv[])
{
int (*pfHash[2])(int, int) = { A, B };
(*pfHash[0])(1,2);
return 0;
}
С уважением, Avl2k.

Ответ отправлен: 30.12.2002, 12:17
Отправитель: Avl2k


Отвечает Dzik

Приветствую Вас, вова!
Надо писать не
*pfHash[1](1,2);, а
(*pfHash[1])(1,2);



Ответ отправлен: 29.12.2002, 15:04
Отправитель: Dzik


Отвечает vitya

Доброе время суток, вова!
не надо звездочку писать, просто пиши
pHashFunc[1](1, 2);

Ответ отправлен: 30.12.2002, 08:32
Отправитель: vitya



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (39)
C / C++ (28)
Perl (5)
Delphi (21)
Pascal (22)
Basic / VBA (11)
Java / JavaScript (7)
PHP (4)
MySQL / MSSQL (5)
Пользователю
Windows 95/98/Me (33)
Windows NT/2000/XP (26)
"Железо" (30)
Поиск информации (14)
Администратору
Windows NT/2000/XP (11)
Linux / Unix (15)
Юристу
Гражданское право (6)
Семейное право (3)
Трудовое право (3)
КоАП (2)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное