如何使用 luaBridge 将 lua 表传递给 C++ 类构造函数?

问题描述

这就是我想做的。

int lua:

object1 = MyObjectClass({1,2,3});

在 C++ 中

class MyObjectClass
{
public:
    MyObjectClass(/*How to passed lua table here?*/)
    {
    
    }
    void printmynum()
    {

    }
};


getGlobalNamespace(L)
    .beginClass<MyObjectClass>("MyObjectClass")
    .addConstructor<>()//???
    .addFunction("printmynum",&MyObjectClass::printmynum)
    .endClass();

我很抱歉英语能力很差。

我想从MyObjectClass的构造函数接收lua的表。

解决方法

解决了

class MyObjectClass
{
public:
    MyObjectClass(lua_State* L)
    {
        LuaRef param = LuaRef::fromStack(L,2);
        if (param.isTable())
        {
            cout << param[1] << endl;
        }
    }
    void printmynum()
    {

    }
};


getGlobalNamespace(L)
.beginClass<MyObjectClass>("MyObjectClass")
    .addConstructor<void (*)(lua_State*)>()
    .addFunction("printmynum",&MyObjectClass::printmynum)
    .endClass();