c++ - 如何使用 LuaBridge 注册从同一个类继承的两个类?

标签 c++ lua luabridge

我正在尝试使用 LuaBridge 注册两个继承自同一类的类,但失败了。

如何注册以下三个类(class)?

    class A
    {
        public:
            int x;
    };
    class B1 : public A
    {
        public:
            int y;
    };
    class B2 : public A
    {
        public:
            int z;
    };

我可以这样注册A和B1

getGlobalNamespace(L)
    .beginClass<A>("A")
        .addConstructor()
    .endClass()
    .deriveClass<B1, A>("B1")
        .addConstructor<void(*)(void)>()
    .endClass()

getGlobalNamespace(L)
    .beginClass<A>("A")
        .addConstructor()
    .endClass()
    .deriveClass<B1, A>("B1")
        .addConstructor()
    .endClass()
    .deriveClass<B2, A>("B2")
        .addConstructor<void(*)(void)>()
    .endClass()

结果注册 B2 就好像它继承自 B1。

非常感谢任何帮助。

最佳答案

getGlobalNamespace(L)
    .beginClass<A>("A")
        .addConstructor()
    .endClass()
    .deriveClass<B1, A>("B1")
        .addConstructor()
    .endClass()
    .deriveClass<B2, A>("B2")
        .addConstructor<void(*)(void)>()
    .endClass()

关于c++ - 如何使用 LuaBridge 注册从同一个类继承的两个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22447347/

相关文章:

c++ - 无法修改传递给 lua 的对象

C++ LZMA SDK : Uncompress function for LZMA2 compressed file

lua - 如何将 Lua 字符串转换为 float

c++ - 使用类时如何使用链表

email - 在 Lua 中发送电子邮件

hash - CRC32 整数散列到字符串

c++ - 使用 LuaBridge 将 LuaJIT 绑定(bind)到 C++ 导致 "PANIC: unprotected error"

c++ - RapidXml 和内存池

c++ - 在LLVM中,如何获取Value的ValuetoValueMapTy(VMap)?其目的是什么?