1 %module(directors="1") director_classic
3 %include "std_string.i"
14 virtual std::string id() { return "Being"; }
18 struct Person : Being {
19 virtual std::string id() { return "Person"; }
22 struct Child : Person {
23 virtual std::string id() { return "Child"; }
26 struct GrandChild : Child {
27 virtual std::string id() { return "GrandChild"; }
30 // Orphans - don't override id() in C++
31 struct OrphanPerson : Person {
35 struct OrphanChild : Child {
43 Caller(): _callback(0) {}
44 ~Caller() { delCallback(); }
45 void delCallback() { delete _callback; _callback = 0; }
46 void setCallback(Person *cb) { delCallback(); _callback = cb; }
47 void resetCallback() { _callback = 0; }
48 std::string call() { if (_callback) return _callback->id(); else return "oops"; }
49 Person* baseClass() { return _callback; }