Я не знаю, почему у меня с этим проблемы. Все, что я хочу сделать, это:
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;
*/
Проблема, с которой я столкнулся, заключается в том, что после того, как я проглотил этот код, я не могу понять, как заставить сценарий lua работать хорошо.
/* Usage(lua)
f = example.foo()
f2 = example.foo2(f) --error
*/
Я получаю сообщение об ошибке «Неправильные аргументы для перегруженной функции« new_Foo2 »»: Возможные прототипы c/С++: foo2() foo2(foo const &)
То же самое произойдет, если я попытаюсь использовать do f2 = f. Насколько я понимаю, все хранится в виде указателя, поэтому я попытался добавить дополнительный конструктор, который принимал указатель на foo, но безрезультатно.