Ответ 1
#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
Предположим, что у меня есть класс вроде
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?)
Возможно ли это? В настоящее время я использую путь двух конструкторов, но было бы здорово это сделать.
#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
Наконец-то я нашел здесь, я могу использовать стандартный конструктор по умолчанию указателя следующим образом:
A(int a, boost::shared_ptr<int> ptr = boost::shared_ptr<int>())