%description: Customize non-cObject-rooted class, abstract fields %file: {}.msg class {MyClass} { properties: customize = true; fields: int b; abstract int i; } %global: #include "{}_m.h" class {MyClass} : public {MyClass_Base} { private: int m; public: {MyClass}() : {MyClass_Base}() {m=0;} {MyClass}(const {MyClass}& other) : {MyClass_Base}() {operator=(other);} {MyClass}& operator=(const {MyClass}& other) {{MyClass_Base}::operator=(other); m=other.m; return *this;} virtual int getI() const {return m;} virtual void setI(int i) {m=i;} }; Register_Class({MyClass}); %activity: #define PRINT(X) ev << #X << ":" << X << endl {MyClass} x; x.setB(11); PRINT(x.getB()); x.setI(11); PRINT(x.getI()); %contains: stdout x.getB():11 x.getI():11