Форум программистов, компьютерный форум CyberForum.ru

Передача указателя функции класса A в класс B - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ абстрактный базовый класс http://www.cyberforum.ru/cpp-beginners/thread161310.html
люди подскажите.есть абстрактный базовый класс можно ли в нем определить конструктор копирования? написал в компиляторе,получается,что можно,но не понимаю почему? если нельзя создавать объект абстрактного класса,то как проходит такое объявление Abk::Abk(const Abk &) ??? Abk-абстрактный базовый класс
C++ Обработка адреса DNS и IP из коммандной строки Имеется ли функция которая исходя из полученного аргумента будет использовать подходяшую функцию? Т.е. если argv == "localhost" то будет использоваться: clientserver.sin_addr.s_addr = inet_addr(argv); а если argv == "127.0.0.1" то: clientserver.sin_addr.s_addr = htons(atoi(argv)); И если нет то каким образом лучше проверить аргумент, по последнему знаку? Т.е. если домейн то последняя будет... http://www.cyberforum.ru/cpp-beginners/thread161305.html
C++ шифрование файлов произвольного типа
возникла проблема при шифровании: txt файлы шифрует нормально но остальные типы(png) не хочет вот код файл SD.h #include <stdio.h> #ifndef __SD #define __SD class SD { public:
Переменная в динамической памяти C++
class SimpleCircle { public: SimpleCircle (); //Basic constructor SimpleCircle (int radius); //Constructor with parameters void SetRadius (int r); //Radius set function void operator++ () {++itsRadius;} int operator++ (int); //Postfix operator int * itsRadius = new int; };
C++ С базовым курсом разобрался, переходим на оконные приложения. http://www.cyberforum.ru/cpp-beginners/thread161238.html
Пол года долбал базовый курс (все о консоли) и считаю что пора перейти на уровень выше. Нашел на майкрософте маленький гайд по созданию оконных приложений. Ниже будет оконное приложение представлено в том гайде которое выводит "Hello world!". Очень прошу помочь разобраться что к чему. В дальнейшем развитии темы выйдет не плохой учебник... // GT_HelloWorldWin32.cpp // compile with:...
C++ самое длинное слово #include <iostream> using namespace std; int main() { char line; int cur = 0, max = 0, index = 0, i; cin >> line; for(i = 0;; i++) { if(line == ' ' || line == '\0') подробнее

Показать сообщение отдельно
djoni-kga
4 / 4 / 0
Регистрация: 11.11.2008
Сообщений: 66
24.08.2010, 17:07     Передача указателя функции класса A в класс B
Добрый день!

Стоит задача вызывать функцию другого класса в потоке, ну что то типа этого:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
typedef void (t1::*PTR_FUN)(int); //указатель на не статическую
class t1
{
private:
    void MyFun(int i)
    {
       i++;
    }
};
class t2
{
private:
  // где храниться указатель на функцию  
  PTR_FUN pFun; 
  // функция потока
  static MyThead(LPVOID lpParameter)
  {
     int x = 1000;
     t2* pThis = static_cast<t2*>(lpParameter);
     (pThis->pFun)(x);
  }
public:
  // функция которая принимает указатель на фун. другого класса
  void SetCallBack(PTR_FUN pfun)
  {
     pFun = pfun;
  }
};
а что если в конструкции типа typedef void (t1::*PTR_FUN)(int) имя класса t1 не известно, как быть?????. Проблема в том что нечто подобное класса t2, со всеми заморочками (а именно работа с RS232) я должен отдать заказчику, где он будет подключать его в разные проекты, какие имена классам он даст с которых будет вызываться его функция, меня не должно интересовать, класс должен быть универсальным. Это надо реализовать на MFC
До этого программировал в C++/CLI и С# там просто пишешь delegate и event, цепляй что хочешь, а тут фиг.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru