/trunk/Examples/python/callback/example.h

# · C++ Header · 22 lines · 16 code · 5 blank · 1 comment · 1 complexity · f2aeaadad8e4d8daef380d67dd9cffc2 MD5 · raw file

  1. /* File : example.h */
  2. #include <iostream>
  3. class Callback {
  4. public:
  5. virtual ~Callback() { std::cout << "Callback::~Callback()" << std:: endl; }
  6. virtual void run() { std::cout << "Callback::run()" << std::endl; }
  7. };
  8. class Caller {
  9. private:
  10. Callback *_callback;
  11. public:
  12. Caller(): _callback(0) {}
  13. ~Caller() { delCallback(); }
  14. void delCallback() { delete _callback; _callback = 0; }
  15. void setCallback(Callback *cb) { delCallback(); _callback = cb; }
  16. void call() { if (_callback) _callback->run(); }
  17. };