0
我得到了在C++函數,它包裝的輸出流構造函數,因此它可以在一個指針傳遞給一個父類,它的運行中,ALA:直接從函數返回類實例的要求?
pf_istream PF_Plugin::pf_open_in() {
return pf_istream(this);
}
當我這樣做的,但是,我得到的是這樣的:
pf_plugin.cc:103: error: no matching function for call to ‘pf_istream::pf_istream(pf_istream)’
pf_istream.hh:36: note: candidates are: pf_istream::pf_istream(const PF_Plugin*)
pf_istream.hh:29: note: pf_istream::pf_istream(pf_istream&)
我有定義的拷貝構造函數和賦值運算符(如上面可以看出),如果我寫的功能,像這樣:
pf_istream PF_Plugin::pf_open_in() {
pf_istream to_ret(this);
return to_ret;
}
它工作得很好。我得到類似的錯誤,如果我嘗試將pf_istream實例都可以直接從呼叫分配功能,如:
pf_istream inFile = pf_open_in();
些什麼,我需要補充,使這項工作?
嗯我的問題是,這些pf_istream對象拷貝語義是這樣的:複製一個通過底層輸出流的新元素的所有權,所以我不得不離開我的複製構造函數非const。我該如何處理? – 2010-07-04 01:55:19
嗯,理想情況下,你用不同的設計來解決它;)你遇到了與'std :: auto_ptr'相同的問題,而auto_ptr是一個相當有爭議的話題:)請看這裏:http://www.aristeia.com /BookErrata/auto_ptr-update.html – Stephen 2010-07-04 02:01:36
甜我會檢查出來,謝謝! – 2010-07-04 02:05:36