C++ поддерживает множественное наследование. Что такое «проблема алмаза», которая может возникнуть при множественном наследовании? Приведите пример.
Это означает, что мы не можем создать гибридное наследование, используя множественное и иерархическое наследование.
Рассмотрим простой пример. В университете есть люди, связанные с ним. Некоторые студенты, некоторые преподаватели, некоторые администраторы и так далее. Таким образом, простая схема наследования может иметь разные типы людей в разных ролях, и все они наследуются от одного общего класса «Person». Класс Person может определить абстрактный метод getRole(), который затем будет переопределен его подклассами для возврата правильного типа роли.
Но что произойдет, если мы захотим смоделировать роль помощника преподавателя (ПП)? Как правило, ПП является одновременно аспирантом и преподавателем. Это приводит к классической проблеме алмаза множественного наследования и, как следствие, двусмысленности в отношении метода getRole() ПП.
Wi-Fi-флешка? WTF? Что такое Wi-Fi-флешка? Это флешка, которая опознается, как флешка, пахнет, как флешка, крякает, как флешка, но на самом деле никакая она не флешка, она просто эмулирует файловую...
Чаще всего на хабре люди делятся историями своего успеха. Вроде, «Ребята, я написал свою ORM, качайте, ставьте ллойсы!» Эта история будет немного другая. В ней я расскажу о неуспехе, который считаю...
Предисловие Привет Хабр! В этой статье я хочу немного разобрать как работают UHT и рефлексия в Unreal Engine. Точнее: Как формируются .generated.h и .gen.cpp. Как подставляются макросы, кои являются...
In this episode, Bryce and Conor finish their interview with Kate Gregory and talk about the Carbon Programming Language.Link to Episode 95 on WebsiteTwitter...
For several reasons, I didn’t get a CppCon ticket this year, but since I live in the Denver metro area I did go on the Friday, which is free to attend. Herb’s closing keynote (Cpp2) was…
#ищу_команду
Ищите единомышленников, делайте коллабы, создавайте новые проекты. В комментариях под постом укажите #язык, #библиотеку и/или #стек, который вас интересует и опишите общую концепцию проекта.
В этой статье мы поговорим с Джейсоном Тернером, одним из основателей CppCast. CppCast – это первый С++ подкаст, основанный С++ разработчиками. Начиная с 2015 года каждую неделю на CppCast выходили...
Из к\ф Кавказская пленница После небольшой статьи про особенности при работе с кэшем мне в личку прилетело несколько замечаний про работу спинлоков и приглашение на собес от пчелайнов, приятно, что...
🔥Хардкорный тест для бэкенд-разработчиков и системных программистов 🔥
🚀 Ответьте на 20 вопросов и проверьте, насколько вы готовы к обучению на курсе - «Алгоритмы и структуры данных»
💻 Занятия курса проходят в формате интерактивов. Изучим самые важные алгоритмы: битовая арифметика, рекурсия, деревья поиска, динамическое программирование, теория графов и другие.
Каждый алгоритм вы изучите на примерах, исследуете разные способы его реализации, а некоторые напишете с нуля вместе с преподавателем на уроке.
🦾 Курс подойдет для любого языка программирования.
👉 ПРОЙТИ ТЕСТ https://otus.pw/Y8rG/
💣 Пройдете тест, получите демо-ролик о занятиях на курсе и Welcome-скидку.
🔴 Также вам откроется доступ к 2 открытым урокам курса:
✅ Создание ассоциативного массива
✅ Создание ассоциативного массива на базе хэш-таблицы и префиксного дерева
Разработка софта это не только про код. Разработка софта это во многом про Toolchain(ы). Прежде чем начать исполняться исходники проходят гигантский путь и с каждым годом выходят все более и более...
В этом тексте я предлагаю порассуждать, что же должно быть в нормальном взрослом firmware репозитории (репе/общаке) безотносительно к конкретному проекту. То есть самые универсальные и переносимые...