Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Указатель на функц ию   Denis Kostousov   06 Dec 2002 08:47:32 
 Re: Указатель на функц ию   Nikolay Korneyev   09 Dec 2002 14:03:37 
 Re: pointer to member function   Aleksey Cheusov   09 Dec 2002 15:39:02 
Архивное /ru.linux/79404186fdd1.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional