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

Действие для кнопки при инициализации класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Односвязный список, поменять значения местами http://www.cyberforum.ru/cpp-beginners/thread696043.html
пробую написать сортировку выборкой int selectionSort() { ListNode< NODETYPE > *currentPtr = firstPtr; sort(currentPtr); } int sort(ListNode < NODETYPE > *current) {
C++ Удалить из файла все числа меньше заданного Удалить из файла все ЧИСЛА меньше заданного. Соответственно у нас два файла 1 и 2 txt, и во втором редактировынный первый))) http://www.cyberforum.ru/cpp-beginners/thread696040.html
C++ Как отсортировать двумерный массив по возрастанию методом пузырька?
Напишите пожалуйста код. Нигде не могу найти(
C++ Определить сумму отрицательных элементов массива
#include <math.h> #include <stdio.h> #include <stdlib.h> #include <conio.h> #define N 10 #define M 10 #define A 10 #define B 10 #define C 10
C++ Каждую цифру числа забить в ячейку массива http://www.cyberforum.ru/cpp-beginners/thread696027.html
Допустим есть какое либо битовое число 001011101 мне нужно его запихать в массив так чтобы = 0 = 0 = 1 = 0 = 1 = 1 = 1 = 0 = 1
C++ The variable 'x' is being used without being initialized Доброго времени суток. Ничего не пойму почему вылазит эта ошибка? : #include <iostream> int main() { double x,y,a; a = 4-(cos(x/4)*cos(x/4)); подробнее

Показать сообщение отдельно
Kuzia domovenok
 Аватар для Kuzia domovenok
1886 / 1741 / 117
Регистрация: 25.03.2012
Сообщений: 5,916
Записей в блоге: 1
13.11.2012, 02:43     Действие для кнопки при инициализации класса
Думаю подойдёт паттерн "стратегия" (Во какое умное слово как раз вчера вычитал!)

Добавлено через 11 минут
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
29
30
31
class ButtonBehaviour(){
  public:
    virtual void onClickAction()=0;
    virtual int Action_id()=0;
};
class FirstButtonBehaviour:public ButtonBehaviour{
  public:
    void onClickAction(){ MessageBox(Hwnd, "first", "button method", MB_OK);}
    int Action_id(){return 1;};
};
class SecondButtonBehaviour:public ButtonBehaviour{
  public:
    void onClickAction(){ MessageBox(Hwnd, "second", "button method", MB_OK);}
    int Action_id(){return 2;};
};
class Button{
  ButtonBehaviour* action;
  public:
  Button(){action=new FirstButtonBehaviour();}
  ~Button(){delete action;}
  void SetBehaviour(int id){
    if (id!=action->Action_id())
    switch (id){
      case 1: {delete action; action=new FirstButtonBehaviour();} break; 
      case 2: {delete action; action=new SecondButtonBehaviour();} break; 
    } 
  }
  void click(){
    action->onClickAction();
  }
};
Добавлено через 12 минут
Цитата Сообщение от zetsin Посмотреть сообщение
Как сделать так, что-бы при инициализации класса я для каждой кнопки задал свое действие? Есть советы или другие реализации - буду благодарен за наставления. (знаю как реализовать такое на джаве, через абстрактные классы, оно там немного проще будет... но нужно на С++)
Если изменение поведения не предвидится просто создавай абстрактный класс.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Button{
public:
Button(){};
virtual void Action()=0;
};
class Button1: public Button{
public:
Button1(){};
void Action(){MessageBox(Hwnd, "second", "button method", MB_OK);};
};
class Button2{
public:
Button2(){};
void Action(){MessageBox(Hwnd, "second", "button method", MB_OK);};
};
 
Текущее время: 11:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru