10

假设我有课

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?)

是否可以?目前我正在使用两个构造函数的方式,但这样做会很棒。

4

2 回答 2

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

于 2010-12-20T02:29:12.517 回答
3

我终于在这里找到了,我可以像这样使用共享指针的默认构造函数:

A(int a, boost::shared_ptr<int> ptr = boost::shared_ptr<int>())
于 2010-12-20T02:41:25.353 回答