Вниз  C / C++
- 18.03.2012 / 12:17
nexmean
  Пользователь

nexmean 
Сейчас: Offline
че вы как чукчи указатели рисуете? char *record же :zloj:
- 18.03.2012 / 12:23
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Как юзать интерфейсы в C++?

Например на Java так:

  1. interface MenuListener {
  2.    void menuAction();
  3. }
  4.  
  5. class Menu {
  6.    void setMenuListener(MenuListener listener) {
  7.       this.listener = listener;
  8.    }
  9. }
  10.  
  11. class MenuImpl implements MenuListener {
  12.  //----
  13.     Menu menu = new Menu();
  14.     menu.setMenuListener(this);
  15.  //----
  16.  
  17.  
  18.     void menuAction() {
  19.     }
  20. }

Как так в C++ сделать?

  1. class MenuListener {
  2. public:
  3.     virtual void menuAction() = 0;
  4. }
  5.  
  6. class Menu {
  7. public:
  8.    void setMenuListener(MenuListener _listener) {
  9.       listener = _listener;
  10.    }
  11. }
  12.  
  13. class MenuImpl : public MenuListener {
  14.  //----
  15.     Menu menu;
  16.     menu.setMenuListener(this);
  17.  //----
  18.  
  19.  
  20.     void menuAction() {
  21.     }
  22. }

В строке 8 ошибка - невозможно передать абстрактный класс как параметр.
В строке 16 непонятка - this в C++ нет. Как передать ссылку на самого себя?
__________________
 let live

Изменено aNNiMON (18.03 / 12:25) (всего 1 раз)
- 18.03.2012 / 12:27
TAPAHbl4
  Пользователь

TAPAHbl4 
Сейчас: Offline
aNNiMON, в С++ нету this?
Быть такого не может
- 18.03.2012 / 13:33
P@bloid
  Пользователь

P@bloid 
Сейчас: Offline
aNNiMON, есть там this, только это указатель на текущий класс, а не его копия.
Напиши в параметрах MenuListener* _listener, вместо того что там
Соответственно listener тоже должен быть указателем
- 18.03.2012 / 16:39
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
P@bloid, спасибо, разобрался.
__________________
 let live
- 19.03.2012 / 15:15
FlyMove
  Пользователь

FlyMove 
Сейчас: Offline
А вот например в паскале есть функция "sqr".Т.е возведение в квадрат.А есть ли на с++ такое?
- 19.03.2012 / 15:26
LPzhelud
  Пользователь

LPzhelud 
Сейчас: Offline
FlyMove, c++ возведение в квадрат
Впредь за такие вопросы буду банить
__________________
 Эль Презеденте

Изменено LPzhelud (19.03 / 15:31) (всего 1 раз)
- 19.03.2012 / 15:27
mrEDitor
  Пользователь

mrEDitor 
Сейчас: Offline
FlyMove, квадрат? о_О
x * x - чем не квадрат?
:ps: #include <math.h>
- 19.03.2012 / 20:04
TAPAHbl4
  Пользователь

TAPAHbl4 
Сейчас: Offline
mrEDitor, да зажрались.
Ведь x*x реально удобнее.
- 20.03.2012 / 10:16
FlyMove
  Пользователь

FlyMove 
Сейчас: Offline
Конвертер из цельсия в фаренгейт
П.С учусь работать с классами.


Прикрепленные файлы:
ctof.png (13.02 кб.) Скачано 279 раз
Class.exe (464.12 кб.) Скачано 444 раза
Наверх  Всего сообщений: 2777
Фильтровать сообщения
Поиск по теме
Файлы топика (111)