C++ 如何使用接受类作为参数的Sqrat绑定函数?

C++ 如何使用接受类作为参数的Sqrat绑定函数?,c++,squirrel,C++,Squirrel,我正在将一个类绑定到squirrel,遇到了一个我不知道如何解决的问题。该类有一个函数,该函数将另一个类作为参数。当我选择不绑定它编译的特定函数时,它会抛出一个错误 课程: class A { public: A(int foo) : m_foo(foo) {} private: int m_foo; } class B { public: void bar(A foo) { /* Do Stuff with foo *

我正在将一个类绑定到squirrel,遇到了一个我不知道如何解决的问题。该类有一个函数,该函数将另一个类作为参数。当我选择不绑定它编译的特定函数时,它会抛出一个错误

课程:

class A
{
    public:
        A(int foo) : m_foo(foo) {}

    private:
        int m_foo;
}

class B
{
    public:
        void bar(A foo) { /* Do Stuff with foo */ }
}
绑定

Sqrat::RootTable().Bind("A", Sqrat::Class<A>());

Sqrat::RootTable().Bind("B", Sqrat::Class<B>())
    .Func("bar", &B::bar);
);
Sqrat::RootTable().Bind(“A”,Sqrat::Class());
Sqrat::RootTable().Bind(“B”,Sqrat::Class())
.Func(“bar”和&B::bar);
);

用作参数的类已经绑定到Sqrat的squirrel,没有问题,但是Sqrat似乎仍然无法识别它是什么类型。关于为什么会发生这种情况,您有什么想法吗?

问题是函数中的参数需要作为引用传递,如下所示:

class B
{
    public:
        void bar(A &foo) { /* Do Stuff with foo */ }
}

这是一个问题的原因是作为参数传递的对象在其构造函数中需要一个参数。Sqrat尝试在从参数复制值之前创建类的实例。将参数作为对象的引用阻止了Sqrat尝试实例化一个没有参数的无效对象。

在您的问题中确实需要示例代码。从你的回答来看,显然没有人能帮上忙。我对问题和答案进行了编辑,以便对未来的访问者有用。请删除否决票,这样未来的访问者就不会泄气阅读本文。我希望否决票的人至少能评论一下他们为什么这么做