Я наткнулся на этот код, и я совершенно запутался в том, как он компилируется, поскольку одна из функций из A ссылается на статический B. Также, что он должен делать.
, где B является производным от A.
В файле A.h
static A* instance();
в B.h
static B* instance() { return dynamic_cast<B*>(A::instance()); }
в B.cpp
A* A::instance()
{
static B s_instance;
return &s_instance;
}
Определения классов и тому подобное были опущены, чтобы облегчить код.