|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Denis Kostousov 2:5020/400 06 Dec 2002 08:47:32 To : All Subject : Указатель на функц ию --------------------------------------------------------------------------------
Добрый день, уважаемые.
Помогите, кто может, побороть проблему.
Есть класс, в нем кроме всего прочего есть 2 функции и переменная типа
указатель на функцию:
class A{
...
double (*TFunc)(long);
double func_1(long);
double func_2(long);
};
В конструкторе я пытаюсь проинициализировать переменную указателем на
одну из функций. Делал я это несколькими разными способами. Все они
приводили к различным ошибкам:
A::A()
{
...
TFunc=func_1;
}
при компиляции получается следующая проблема:
no matches converting function func_1 to type
`double (*) (long int)'
candidates are: double A::func_1 (long int)
- ---
A::A()
{
...
TFunc=&A::func_1;
}
при компиляции получается следующая проблема:
cannot convert `double (A::*) (long int)' to
`double (*) (long int)' in assignment
Попытка в объявлении сделать
double (A::*TFunc)(long);
Приводит к ошибке в месте, где я пытаюсь вызвать эту функцию
void A::mmm()
{
double f;
long i;
f=this->A::TFunc(i);
}
no matching function for call to `A::TFunc
(long int)'
Подскажите, где грабли зарыты?
Компиляция проводилась под ASPLinux-7.3
g++ 2.96
--
Denis Kostousov
mailto:sandello@permonline.ru
--- ifmail v.2.15dev5
* Origin: Demos online service (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/79404186fdd1.html, оценка из 5, голосов 10
|