• Как понять заголовочные файлы?

    @Mercury13
    Программист на «си с крестами» и не только
    #include — как ни странно.

    Вы так и не поняли такой вещи, как «единица компиляции». Дело в том, что в Си c-файлы компилируются независимо друг от друга (в единую программу всё собирает линкер). А чтобы сказать «оно есть, только в другой единице компиляции», используют прототипы и extern’ы.

    А если вы хотите просто внести код в ту же единицу компиляции, просто пишите его в хедере, да и всё. Только в большинстве компиляторов это исключает предкомпилированные хедеры — а ТАКИЕ хедеры вам предкомпилировать, скорее всего, и не нужно.

    <брюзга mode on>
    Не создают кода (а значит, в традиционной системе с кучей единиц компиляции находится именно в хедерах)
    • extern и прототипы
    • inline
    • не до конца специфицированные шаблоны
    • static-поля в классе (но потом это static-поле придётся повторить в какой-нибудь одной единице компиляции)
    • может, ещё что-то, только я забыл…
    <брюзга mode off>
    Ответ написан
    1 комментарий
  • Bison - как реализовать ООП?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Все что сделает для вас Bison это упростит разрбор грамматики, позволит сформировать синтаксическое дерево. И только.

    Грубо говоря, ООП это все то же старое доброе процедурное программирование. То есть, у вас есть структура данных и методы для этой структуры. То есть метод объекта это просто функция для которой можно задать контекст. Можно организовывать виртуальные таблицы для наследования и кучу всего еще. Это уже вам в зависимости от языка надо думать и от его поведения.
    Ответ написан
    5 комментариев