Is it possible to return an abstract class(class itself or a reference, doesn't matter) from a function?
You can return an abstract class pointer - assuming B
is a concrete class derived from abstract class A
:
A * f() {
return new B;
}
or a reference:
A & f() {
static B b;
return b;
}
or a smart pointer:
std::unique_ptr<A> f() {
return std::make_unique<B>(...);
}