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

时间:2014-03-17 05:07:01

标签: c++ lua luabridge

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

如何在下面注册三个课程?

    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。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

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