codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <iostream> #include <memory> #include <string> using namespace std; class Event { public: string type; string source; virtual ~Event() { } }; class KeyEvent : public Event { public: string key; string modifier; virtual ~KeyEvent() { } }; class MouseEvent : public Event { public: string button; int x; int y; virtual ~MouseEvent() { } }; void handleEvent(const KeyEvent& e) { if(e.key == "SPACEBAR") cout << "Hello world! The Space key was pressed ;)" << endl; } auto_ptr<Event> generateEvent() { auto_ptr<KeyEvent> ret(new KeyEvent); ret->type = "KEYBOARD_EVENT"; ret->source = "Keyboard0"; ret->key = "SPACEBAR"; ret->modifier = "none"; return auto_ptr<Event>(ret.release()); } int main() { auto_ptr<Event> pEvent = generateEvent(); KeyEvent *pKeyEvent = dynamic_cast<KeyEvent*>(pEvent.get()); if (pKeyEvent) { handleEvent(*pKeyEvent); } return 0; }
Private
[
?
]
Run code
Submit