我不知道为什么我很难处理这个。我想做的就是:
class foo {
public:
foo(){}
~foo(){}
float a,b;
};
class foo2 {
public:
foo2(){}
foo2(const foo &f){*this = f;}
~foo2(){}
void operator=(const foo& f){
x = f.a;
y = f.b;
}
float x,y;
};
/* Usage(cpp):
foo f;
foo2 f2(f);
//or using the = operator
f2 = f;
*/
我遇到的问题是,在 swigging 这段代码之后,我无法弄清楚如何使 lua 脚本运行良好。
/* Usage(lua)
f = example.foo()
f2 = example.foo2(f) --error
*/
我得到的错误是“重载函数 'new_Foo2' 的参数错误”:可能的 c/c++ 原型是: foo2() foo2(foo const &)
如果我尝试使用 do f2 = f,也会发生同样的事情。据我了解,所有内容都存储为指针,因此我确实尝试添加一个额外的构造函数,该构造函数将指针指向 foo 但无济于事。