Classes can be subclassed using Lua Bridge. The base class does not need to be exposed to Lua, only the subclass does. Subclasses can be exposed to Lua Bridge using the deriveClass method. Unlike beginClass, deriveClass should only be called once. Because of the loosely typed nature of Lua and the limitations placed on deriveClass, it's usually better to expose classes with beginClass, instead. For the sake of completeness, the following code sample illustrates how to use deriveClass:
class Foo {
int x;
int y;
}
class Bar : public Foo {
int x;
};
getGlobalNamespace(L)
.beginNamespace("Sample")
.beginClass<Foo>("Foo")
.endClass()
.deriveClass<Bar, Foo>("Bar")
.endClass()
.endNameSpace();