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

C++ 类构造函数上boost::shared_ptr的默认值,c++,boost,smart-pointers,multiple-constructors,C++,Boost,Smart Pointers,Multiple Constructors,假设我有这样的课 class A{ public: A(int a, boost::shared_ptr<int> ptr){ // whatever! } }; 当然,我知道我可以用一个参数创建另一个构造函数,但我正在寻找类似 A(int a, boost::shared_ptr<int> ptr = WAT?) A(int A,boost::shared_ptr ptr=WAT?) 可能吗?目前我正在使用两个构造函数的方式

假设我有这样的课

class A{
    public:
    A(int a, boost::shared_ptr<int> ptr){
        // whatever!
    }
};
当然,我知道我可以用一个参数创建另一个构造函数,但我正在寻找类似

A(int a, boost::shared_ptr<int> ptr = WAT?)
A(int A,boost::shared_ptr ptr=WAT?)
可能吗?目前我正在使用两个构造函数的方式,但这样做会很好。

\include
#include <boost/make_shared.hpp>

A(int a, boost::shared_ptr<int> ptr = boost::make_shared<int>())
A(int A,boost::shared_ptr ptr=boost::make_shared())
检查

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

A(int a, boost::shared_ptr<int> ptr = boost::shared_ptr<int>())
A(int A,boost::shared_ptr ptr=boost::shared_ptr())

谢谢您的回答。我并没有试图用这种方式使用make_shared,即使我在其他地方调用该构造函数时也在使用它。但是,最好是将“ptr”放在默认值中,而不是给它一个伪值,因为我使用的不是一个整数,而是一个完整的类。你可以不用伪值调用它,我只是使用了一个示例。
A(int a, boost::shared_ptr<int> ptr = boost::shared_ptr<int>())