我正在使用 tolua++ 自动将 C++ 类型公开给 Lua。似乎当我暴露某种类型时,例如
struct TestComponent
{
float foo;
string bar;
}
tolua 所做的(至少在我看来是这样的)是向 lua 环境添加一个新的元表(在这种情况下,它只会被称为TestComponent)使用一些常规的元方法,例如__add, __lt, 以及__index,__newindex等。它还有一些自定义函数(称为.setand .get),当您获取或设置结构/类的某些成员时,它们似乎会被使用。这里的TestComponent 的类型似乎只是“table”。
但是,对于像上面这样的简单结构定义,它似乎缺少的是创建类型的新实例的函数/方法TestComponent,例如
a = TestComponent:new()
那么,问题是,如何创建这种类型的新实例并将其分配给变量?例如,将它交给一个需要 type 参数的函数TestComponent。