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

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


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


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

Выпуск № 160
от 30.12.2002, 16:40

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


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

Jadd
Статус: Профессиональный
Общий рейтинг: 144.91
[Подробней >>]
barsik_
Статус: Опытный
Общий рейтинг: 151.88
Телефон: 058-840271
[Подробней >>]
Avl2k
Статус: Опытный
Общий рейтинг: 129.08
[Подробней >>]
 
Dzik
Статус: Профессиональный
Общий рейтинг: 114.93
URL: Разработка игрушек
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 108.08
[Подробней >>]
Yuri Gordienko
Статус: Опытный
Общий рейтинг: 116.97
[Подробней >>]


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

Вопрос № 465. Я поставил себе C++Builder 5. Пытаюсь запустить прогу, написанную тоже на 5 Билдере. Однако он выдаё... (ответов: 1)
Вопрос № 466. естъ такая проблема у меня естъ функция, которая принимает параметр указателъ на функцию, типа typed... (ответов: 5)

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


 Вопрос № 465

Я поставил себе C++Builder 5. Пытаюсь запустить прогу, написанную тоже на 5 Билдере. Однако он выдаёт мне сообщения, что не может найти .bpi файлы. Подскажите что делать. мне прогу завтра сдавать.



Вопрос отправлен: 26.12.2002, 22:59
Отправитель: Lexus (AlexBez@komifree.ru)

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

Отвечает Jadd

Добрый день, Lexus!
Какие файлы? Возможно билдер глюкавый.

Ответ отправлен: 27.12.2002, 02:23
Отправитель: Jadd


 Вопрос № 466

естъ такая проблема
у меня естъ функция, которая принимает параметр указателъ на функцию, типа
typedef void (*fn)(int& a);
void func(fn f)
{
int a = 10;
f(a);
cout << a << endl;
}
а теперъ внимание, вопрос
как могу передатъ этой функции указателъ на функцию-член какого-то класса ? К примеру
class A
{
void inc(int& a){ a++; };
}
Вариант
A a;
func(a.inc)
не работает



Вопрос отправлен: 27.12.2002, 16:36
Отправитель: Gevorg

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

Отвечает barsik_

Добрый день, Gevorg!
Da vrode nelza poslat address functsii - chlena. Dobav public: nad inc

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


Отвечает Avl2k

Добрый день, Gevorg!
Естественно, не работает, потому-что указатель на нестатическую член-функцию сильно отличается от указателя на глобальную функцию с такими же параметрами (хотя бы тем, что ей неявно передается указатель на объект). Поэтому есть два варианта:
1. объявить член-функцию статической, тогда все в порядке и func(A::inc) работает;
2. сделать так
typedef void(A::*fn)(int& a);
void func(A* o, fn f)
{
int a = 10;
(o->*f)( a );
cout << a << endl;
}
...
A a;
func(&a, A::inc);
...
С уважением, Avl2k.

Ответ отправлен: 27.12.2002, 18:23
Отправитель: Avl2k


Отвечает Dzik

Доброе время суток, Gevorg!
У функции- члена класса есть еще один первый, невидимый параметр -this, указатель на обьект.


Ответ отправлен: 27.12.2002, 16:46
Отправитель: Dzik


Отвечает vitya

Доброе время суток, Gevorg!
ты можешь передать, как параметр только статическую функцию.
class A
{
public:
static void f();
};
...
func(&A::f);

Ответ отправлен: 27.12.2002, 16:52
Отправитель: vitya


Отвечает Yuri Gordienko

Приветствую Вас, Gevorg!
Никак. Можно объявить тип указатель на функцию-член, но конкретно для твоего случая это не проходит


Ответ отправлен: 28.12.2002, 10:22
Отправитель: Yuri Gordienko



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

Внимание!
Форма может работать некорректно в почтовых программах "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 (40)
C / C++ (29)
Perl (5)
Delphi (22)
Pascal (23)
Basic / VBA (11)
Java / JavaScript (7)
PHP (4)
MySQL / MSSQL (5)
Пользователю
Windows 95/98/Me (33)
Windows NT/2000/XP (27)
"Железо" (30)
Поиск информации (14)
Администратору
Windows NT/2000/XP (11)
Linux / Unix (14)
Юристу
Гражданское право (6)
Семейное право (3)
Трудовое право (4)
КоАП (2)

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




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

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

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

В избранное