說我有一個類:是否可以在同一個類中創建一個類的實例?
class Foo{
public:
Foo(){
}
//Is it possible to create a function like this:
virtual Foo* createOb(){
//Should create a new Foo,Bar or Fiz, depending on the actual object type.
}
}
class Bar: public Foo{
public:
Bar(){
}
}
class Fiz: public Foo{
public:
Fiz(){
}
}
是否有可能有一個方法createOb()
在基類的,所以當createOb()被調用所導出的類之一的實例,其的一個實例派生類是否被創建?
如果您在不同的cpp文件我想這應該有可能分裂它。你是否正在尋找基類的克隆函數而不知道它是什麼子類?你可以看看這種方法:https://katyscode.wordpress.com/2013/08/22/c-polymorphic-cloning-and-the-crtp-curiously-recurring-template-pattern/ – Hayt
@ c.bear但是Foo不知道派生類......我是C++的新手,所以我不知道你的意思...... –