2

我需要在 Lua 中导航表示从 tolua++ 绑定的 C++ 类层次结构的元表层次结构。

例如,假设我在 C++ 中有一个类 CFoo,它已被 tolua++ 绑定。在 Lua 中,我可以创建这个类的一个实例(它变成一个 userdata 类型),如下所示:

local s = CFoo.new()

我可以通过以下方式获取元表:

local mt = getmetatable(s)

我可以按如下方式检查此类的绑定成员:

for i,v in pairs(mt[".get"]) do
    -- Blah...
end

但是,mt[".get"] 仅包含在此类中显式绑定的成员,而不包含在任何父类中绑定的成员。我需要遍历所有绑定成员,包括父类中的成员。

通过检查 tolua++ 源代码,似乎 tolua++ 在“tolua_super”全局表中保存了超类信息。但目前尚不清楚如何从 Lua 方面进行导航。

4

0 回答 0