在C++中创建"新的对象实例"方法

Dco*_*cow 0 c++

有没有办法在不使用模板的情况下从该类创建类的实例?我需要做一些想法 static classobj* classobj::create (){return new this;}

现在我使用类模板并传递给可创建类的模板类型,如:

template<class T>
class basic_class  {
   public:
   static T *create(int param) { return new T(param); }
}
Run Code Online (Sandbox Code Playgroud)

class A : public basic_class<A> {}
Run Code Online (Sandbox Code Playgroud)

Lig*_*ica 5

为什么不呢?

return new classobj;
Run Code Online (Sandbox Code Playgroud)

或这个:

return new decltype(*this);
Run Code Online (Sandbox Code Playgroud)

但请不要这样做.函数返回的指针具有不明确的所有权语义.我们现在通常不需要原始指针.