在使用tolua++將c++函數導出,可以被lua調用之後,編譯通過,但會報類似這樣的錯誤:
1,attempt to call field 'new' (a nil value)
在使用local aaa = MyClass:new()時會報這樣的錯誤
2,Attempt to call a non-callable object
在使用local aaa = MyClass()時會這麼報
原因是因爲MyClass的pkg文件中沒有聲明構造函數。
分析:我粗略地理解如下:
沒有在pkg中聲明->導致c++與lua的連接類沒有這個構造函數->導致在local aaa = MyClass()時,編譯器認爲你是想直接用這個類(不通過構造函數)
->所以告訴你他不可被調用
不知道這麼理解是否準確,請路過的大神指點。