小智 37
您可以返回一个抽象类指针 - 假设B是一个派生自抽象类的具体类A:
A * f() {
return new B;
}
Run Code Online (Sandbox Code Playgroud)
或参考:
A & f() {
static B b;
return b;
}
Run Code Online (Sandbox Code Playgroud)
或智能指针:
std::unique_ptr<A> f() {
return std::make_unique<B>(...);
}
Run Code Online (Sandbox Code Playgroud)
不可以,但函数可以具有指向抽象类的指针(或引用)的返回类型。然后它将返回从抽象类派生的类的实例。