Компилируется нормально, хотя я пока не хочу пробовать запускать его. Однако ...
//class base;
//class derived;
//class derived : public base;
class base {};
class derived : public base {};
class other
{
public:
void func() {base1 = derived1;}
base* base1;
derived* derived1;
};
void main()
{
}
... перемещение класса other выше определения базового и производного, для которого есть аналогичная вещь, которую я должен сделать в программе myne, вызывает ошибки компиляции.
Очевидное решение - перенаправить объявление базы и производное показано закомментированными в верхней части кода, однако это приводит к невозможности преобразования между базовым * и производным * ошибкой. Попытка переслать объявление, включающее информацию о наследовании, также не работает.