C / C ++ различают полные типы и неполные типы. Если вы отправите-объявите class C
, как это:
class C;
Он будет доступен как неполный тип, что означает, что вы можете объявить указатель на него. Однако вы не можете создать его подкласс до тех пор, пока C не будет полностью объявлен, поскольку C на данном этапе является неполным типом.
Вы можете использовать class C
, если вы просто используете C
. То, что вы хотите:
class B : public A { virtual class C* test(); };