【发布时间】:2014-05-24 17:05:48
【问题描述】:
有没有办法让对象可以创建自己类型的新对象,而无需指定此类型?
class Foo {
public:
virtual Foo* new_instance() {
return new type_of(this); // Some magic here
}
};
class Bar: public Foo {
};
Foo* a = new Foo();
Foo* b = new Bar();
Foo* c = a->new_instance();
Foo* d = b->new_instance();
我现在希望c 的类型为Foo,而d 的类型应为Bar。
【问题讨论】:
-
你想定义一个单例/工厂吗?
-
不是单身人士。不知道工厂能不能解决?
标签: c++ object types instantiation