Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

нужна помощь по C++

Отправлено MegaJohn (93.153.166.240) 21 августа 2010, г. 02:18


Есть описание класса:

file = sys.cpp:

#include "sys.hpp"

////////////////////////////////////////////////////////////////////////////////
void Tsys::my_func( void )
{
}



file = sys.hpp:

#ifndef SYS_H
#define SYS_H

typedef void(*func_ptr)( void );

///////////////////////////////////////////////////////////////////////////////
class Tsys
{
private:
public:
func_ptr my_func_ptr;
void my_func( void );
};




в файле algo.cpp создается экземпляр


#include "sys.hpp"

Tsys sysA;

void a( void ) {}

int _tmain(int argc, _TCHAR* argv[])
{
sysA.my_func_ptr = sysA.my_func;
return 0;
}


но на строку sysA.my_func_ptr = sysA.my_func; ругается что MSVC2005 что Borland C++ v5.02

MSVC:
error C3867: 'Tsys::my_func': function call missing argument list; use '&Tsys::my_func' to create a pointer to member
error C2440: '=' : cannot convert from 'void (__thiscall Tsys::* )(void)' to 'func_ptr'
There is no context in which this conversion is possible

Borland C++ v5 Error: algo.cpp(144,23):Member function must be called or its address taken


вопрос: как проавильно член класса-указатель на функцию проиннициализировать на метод этого же класса ?


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
сложите три и три:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru