Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.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 |
Это "указатель на что-то" - размер указателя компилятор определить может, поэтому создать "d" не проблема. Это "экземпляр чего-то" - для создания "d" надо знать что такое "aq", иначе компилятор не сможет ни зарезервировать необходимый кусок памяти, ни провести необходимую инициализацию, ни даже понять это плоский POD (где достаточно просто выделить память необходимого размера) или же сложный класс с вложенными сущностями, которые тоже надо будет инициализировать в соответствии с их конструкторами/наследованием/etc. |