抽象型make_shared
の代わりに使用できる方法はありますか?shared_ptr
例:
#include <memory>
#include <vector>
class Foo
{
public:
virtual void fooFunc() = 0;
};
class Bar : public Foo
{
public:
void fooFunc() {};
};
int main()
{
std::vector< std::shared_ptr<Foo> > vec;
vec.push_back(std::shared_ptr<Foo>(new Bar()));
//vec.push_back(std::make_shared<Foo>(new Bar())); //doesn't work because Foo is abstract
return 0;
}