2014-07-01 64 views
-1

我綁定一個類松鼠,我遇到了一個問題,我不知道如何解決。該類有一個函數,它將另一個類作爲參數。當我選擇不綁定它編譯的特定函數時,但是當我這樣做時會拋出錯誤。如何使用將類作爲argumet的Sqrat綁定函數?

類:

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沒有問題但它似乎Sqrat還算可以不知道它是什麼類型。任何想法爲什麼這是發生?

回答

1

的問題是,在所需要的函數的參數,以作爲這樣的引用傳遞:

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

這是一個問題是,因爲這是作爲一個參數傳遞的對象需要在一個參數的原因它是構造函數。 Sqrat在從參數中複製值之前嘗試創建類的實例。使參數對象的引用停止Sqrat試圖實例化一個無參數的無效對象。

+0

你真的需要你的問題中的示例代碼。從你的回答,obvioiusly沒有人可以幫助這一點。 – djechlin

+0

我編輯了問題和答案,以便這可能對未來的訪客有用。請刪除downvotes,以便未來的訪問者不會因閱讀此文而失望 – Semirix

+0

不是我的失望。 – djechlin

相關問題