所以我有一些像這樣升壓shared_ptr的傳遞一個派生類
class baseclass {
....
}
class derived : public baseclass {
...
}
void func(boost::shared_ptr<baseclass>& a){
//stuff
}
boost::shared_ptr<derived> foo;
func(foo);
將這項工作?我認爲不是因爲它不是同一類型,但是我不具備將它轉換爲正確類型的能力,那麼是否有任何解決方法可以使這項工作成爲可能?
編輯:我不能做演員就我所知的原因是因爲我上boost::shared_ptr<derived>
類型的向量做一個排序,所以我只能用vec.begin()和vec.end()
對不起,我其實在我的代碼中有const,我只是沒有把它放在這裏。 – csteifel
使用const&it時,請注意,它與臨時匹配類型不同,因此會顛倒refcount。 –