LuaBridge不会创建正确的构造函数

时间:2012-09-02 08:12:25

标签: c++ lua luabridge

我使用LuaBridge将一些类和函数移植到Lua。我正在调试,我总是得到

main.lua:1: attempt to call method 'new' (a nil value)

这是main.lua:

v = TexVector:new( 1, 2 )
v.X = 0
v.Y = 0
print( v.X, v.Y ) -- print and explicit binded functions work

这是TexVector的初始化代码:

luabridge::getGlobalNamespace( L ).
    beginClass< Cheap::Math::TexVector >( "TexVector" ).
        addConstructor< void (*) ( ) >( ).
        addConstructor< void (*) ( const double& , const double& ) >( ).
        addData( "X", &Cheap::Math::TexVector::X ).
        addData( "Y", &Cheap::Math::TexVector::Y ).
        addFunction( "Add", &Cheap::Math::TexVector::Add ).
        addFunction( "Sub", &Cheap::Math::TexVector::Sub ).
        addFunction( "Mul", &Cheap::Math::TexVector::Mul ).
        addFunction( "Div", &Cheap::Math::TexVector::Div ).
        addFunction( "Eq", &Cheap::Math::TexVector::Eq ).
        addFunction( "Apply", &Cheap::Math::TexVector::Apply ).
    endClass( );

AFAIK是:新的Lua-“类”的构造函数。初始化或Lua脚本中有什么问题吗?

2 个答案:

答案 0 :(得分:7)

LuaBridge只支持一个构造函数。这并不能阻止你拥有多个命名的静态构造函数,例如:像Nicol Bolas所暗示的那样。

答案 1 :(得分:2)

我不得不使用.operator进行初始化,只注册一个构造函数。