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


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Alexandr S. Agranovsky               2:5020/400     06 Dec 2002  22:22:31
 To : All
 Subject : Re: Указатель на функцию
 -------------------------------------------------------------------------------- 
 
 
 
   Hi, Denis Kostousov
 
 DK> Есть класс, в нем кроме всего прочего есть 2 функции и переменная типа
 DK> указатель на функцию:
 
 DK> class A{
 DK> ...
 DK>     double (*TFunc)(long);
 DK>     double func_1(long);
 DK>     double func_2(long);
 DK> };
 
 ....
 
 DK> Подскажите, где грабли зарыты?
 DK> Компиляция проводилась под ASPLinux-7.3
 DK> g++ 2.96
 
 Вот что я собрал и успешно запустил c помощью как и gcc-2.95.2
 из Debian 2.2, так и gcc 2.96 из ALT Master 2.0, и получил
 ожидаемые результаты:
 
 #include<iostream.h>
 
 class A {
 public:
   A::A(void);
   double (A::*TFunc)(long);
   double func_1(long);
   double func_2(long);
   void test(long);
 };
 
 A::A(void)
 {
   TFunc=&A::func_1;
 }
 
 double A::func_1(long p)
 {
   cout<<"func1:"<<p<<"\n";
   return (double)p*2;
 }
 
 double A::func_2(long p)
 {
   cout<<"func2:"<<p<<"\n";
   return (double)p/2;
 }
 
 void A::test(long p)
 {
   double f;
   f=func_1(p);
   cout<<f<<"\n";
   f=func_2(p);
   cout<<f<<"\n";
   f=(this->*TFunc)(p);
   cout<<f<<"\n";
 }
 
 void main(void)
 {
   A ex;
   ex.test(3);
 };
 
 Disclaimer (отмазка): С++ я не знаю, а речи Луговского меня
 убедили в том, что много я не потерял ;)
 
 - ---
 Alexandr S. Agranovsky llb@udmnet.ru
 --- ifmail v.2.15dev5
  * Origin: LLB, LLC (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 Re: Указатель на функцию   Alexandr S. Agranovsky   06 Dec 2002 22:22:31 
Архивное /ru.linux/3642b7d2d34f.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional