0
目前我正在學習STL的基本知識和Boost庫,並希望一些幫助。首先,我要說明我在哪裏,在我要建構說,一些類Foo的shared_ptrs的載體。以前我有一個數組或指針,並需要使用new
和delete
來處理內存和思想的載體和智能指針的過渡將是一個不錯的主意。目前,我有這樣的:C++傳遞的std ::矢量<提高:: shared_ptr的< foo >>
class foo{
....
}
int main(){
std::vector< boost::shared_ptr<foo> > vec_ptr;
vec_ptr.push_back(boost::make_shared<foo>);
....
}
現在我想知道如何以最佳方式傳遞這種載體在兩種情況下: - 成一個函數。 。 - 成類對象(通過初始化列表初始化對象的構造
進入我猜測,這是最好的通過引用傳遞功能,如:
void func(std::vector< boost::shared_ptr <foo> >& vec_ptr_in_func){
....
}
成一個類構造函數我不知道我的初步猜測是類似
class vec_class{
vec_class(std::vector< boost::shared_ptr <foo> >& vec_ptr_in_class_)
: vec_ptr_in_class(vec_ptr_in_class_){...}
}
但這似乎沿着線是給錯誤:
no matching function for call to vec_class::vec_class(std::vector< boost::shared_ptr <foo>, std::allocator<boost::shared_ptr<foo> > >)
的功能是什麼,什麼是構造函數,要與載體呢?很大程度上取決於這一點。 – jogojapan
我想你想你的構造公開。默認情況下它是私人的。 –