Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > C/C++: Общие вопросы > forward declaration class


Автор: maxutov 01.08.23, 07:06
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    class aq;
     
    //
     
    class a: aq{};//ошибка почему-то
     
    aq d;//error
     
    aq* l;//ok
     
    class aq
    {
    public:
    };



получается можно писать aq* d;
aq d;- error

а как о этого класса aq тогда наследоваться?

Автор: jack128 01.08.23, 12:55
Ну очевидно добавить definition для aq. Как ты собираешься наследоваться от класса без дефиниции то ?

Автор: Mr.Delphist 05.08.23, 09:56
Цитата maxutov @
получается можно писать aq* d;


Это "указатель на что-то" - размер указателя компилятор определить может, поэтому создать "d" не проблема.


Цитата maxutov @
aq d;- error


Это "экземпляр чего-то" - для создания "d" надо знать что такое "aq", иначе компилятор не сможет ни зарезервировать необходимый кусок памяти, ни провести необходимую инициализацию, ни даже понять это плоский POD (где достаточно просто выделить память необходимого размера) или же сложный класс с вложенными сущностями, которые тоже надо будет инициализировать в соответствии с их конструкторами/наследованием/etc.

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)