假设我有像
这样的课程class A{
public:
A(int a, boost::shared_ptr<int> ptr){
// whatever!
}
};
我的问题是,该ptr的默认值是多少?我希望能够使用
创建该类的实例A myA(5);
当然我知道我可以用一个参数创建另一个构造函数,但我正在寻找像
这样的东西A(int a, boost::shared_ptr<int> ptr = WAT?)
有可能吗?目前我正在使用双构造方法,但这样做会很棒。
答案 0 :(得分:11)
#include <boost/make_shared.hpp>
A(int a, boost::shared_ptr<int> ptr = boost::make_shared<int>())
检查http://www.boost.org/doc/libs/1_43_0/libs/smart_ptr/make_shared.html
答案 1 :(得分:3)
我终于找到了它here,我可以像这样使用共享指针的默认构造函数:
A(int a, boost::shared_ptr<int> ptr = boost::shared_ptr<int>())