10

次のようなクラスがあるとします

class A{
    public:
    A(int a, boost::shared_ptr<int> ptr){
        // whatever!
    }
};

私の質問は、そのptrのデフォルト値は何ですか? を使用してそのクラスのインスタンスを作成できるようにしたい

A myA(5);

確かに、1 つのパラメーターだけで別のコンストラクターを作成できることはわかっていますが、次のようなものを探しています。

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

出来ますか?現在、私は 2 つのコンストラクターの方法を使用していますが、この方法で行うのは素晴らしいことです。

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 に答える