прямое объявление с информацией о наследовании

Компилируется нормально, хотя я пока не хочу пробовать запускать его. Однако ...

//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, вызывает ошибки компиляции.

Очевидное решение - перенаправить объявление базы и производное показано закомментированными в верхней части кода, однако это приводит к невозможности преобразования между базовым * и производным * ошибкой. Попытка переслать объявление, включающее информацию о наследовании, также не работает.

6
задан alan2here 16 January 2011 в 20:38
поделиться