首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LuaBridge没有正确创建构造函数

LuaBridge没有正确创建构造函数
EN

Stack Overflow用户
提问于 2012-09-02 16:12:25
回答 2查看 1K关注 0票数 2

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

代码语言:javascript
复制
main.lua:1: attempt to call method 'new' (a nil value)

这是main.lua:

代码语言:javascript
复制
v = TexVector:new( 1, 2 )
v.X = 0
v.Y = 0
print( v.X, v.Y ) -- print and explicit binded functions work

这是TexVector的初始化代码:

代码语言:javascript
复制
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是:new的构造函数的Lua-“类”。在初始化或Lua脚本中有什么问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-04 16:41:33

LuaBridge仅支持一个构造函数。这并不妨碍你拥有多个命名的静态构造器,比如Nicol Bolas建议的new。

票数 6
EN

Stack Overflow用户

发布于 2012-09-03 12:07:39

我必须使用.operator进行初始化,并且只注册一个构造函数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12234388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档