#include <memory>
class Base
{
std::shared_ptr<Base> create() const; // Returns a default constructed object
}
假设,即所有成员导出到任何从Base
程度是拷贝构造和缺省构造。我想是否有可能使一个非虚创建方法
std::shared_ptr<Base> create() const;
方法来创建适当的动态类型的对象,但我不想使用样板代码。
是否有可能使
std::shared_ptr<Base> create() const;
静态绑定的,但发现里面不知何故正确的类型,并使用默认的构造函数的对象?可能使用C++ 11。
的模板?'template std :: shared_ptr create()const {return new T(); }; p =创建();'。也许你可以提供一个如何使用它的例子? –
2012-07-20 19:03:37
你在做什么*做*? – rubenvb 2012-07-20 19:07:28
大图中,我试图创建一个函数,它接受一个字符串形式的类名,并返回一个std :: shared_ptr 和相应的动态类型。我想实现这个使用静态std :: map 对象 –
2012-07-20 19:11:33