如何使用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 继承。

任何帮助都将不胜感激。

点赞
用户3427520
用户3427520
getGlobalNamespace(L)
    .beginClass<A>("A")    // 开始定义类 A
        .addConstructor()  // 添加默认构造函数
    .endClass()            // 定义类 A 结束
    .deriveClass<B1, A>("B1")    // 表示 B1 继承自 A 
        .addConstructor()        // 添加默认构造函数
    .endClass()                  // 定义类 B1 结束
    .deriveClass<B2, A>("B2")    // 表示 B2 继承自 A 
        .addConstructor<void(*)(void)>() // 添加一个接受无函数入参,无返回值的构造函数
    .endClass()                  // 定义类 B2 结束
2014-03-19 00:53:54