类构造函数的boost :: shared_ptr的默认值

时间:2010-12-20 02:22:59

标签: c++ boost smart-pointers multiple-constructors

假设我有像

这样的课程
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?)

有可能吗?目前我正在使用双构造方法,但这样做会很棒。

2 个答案:

答案 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>())