0

我正在尝试为一组 C++ 类构建一组 Lua 绑定,但一直在玩弄 Python,看看我是否能得到更好的结果。在这两种语言中,绑定似乎都有效,但是,当我初始化包含其他类成员的类的实例时,似乎不能保证这些数据成员被初始化。

例如,上课:

class MyClass : public ParentClass // (Obviously) not a real class
{
    public:
        SomeClass sc;
        OtherClass oc;
};//Note that none of my classes have a constructor or destructor; this is by design.

当我为这样的类生成绑定时,我可以执行如下语句:

var = module_name.MyClass()
print(var.sc.x, var.sc.y)

我将预期的垃圾值打印到屏幕上。但是,如果我尝试打印有关 OtherClass 的实例的任何内容,很明显它已“被排除”——在 Lua 中它根本没有元表,而在 Python 中执行 dir(var.oc) 只提供默认函数。但是,如果我这样做:

var.oc = module_name.OtherClass()

oc metatable / dir(oc) 调用是我所希望的,它可以按预期处理。

任何人都可以提供任何见解,为什么只有 - 一些 - 成员数据被初始化?

谢谢!

4

1 回答 1

0

原来这个问题与我遇到的另一个问题有关。有关解决方案,请参阅此线程

于 2009-06-18T17:46:04.517 回答