Как проект магистра, я проектирую простую операционную систему. Он предназначен для работы в 16-битном реальном режиме на архитектуре x86. В идеале я хотел бы разработать эту ОС на C ++ и использовать сборку только там, где это необходимо. До сих пор у меня есть загрузчик, написанный на ассемблере, который загружает ядро, представляющее собой смесь C ++ и asm. Мой вопрос касается использования C ++. На данный момент он скомпилирован и может работать, но я не использовал динамическое выделение памяти.
Если бы я использовал C, было бы целесообразно написать функции malloc, которые бы обрабатывали распределение памяти, но в C ++ используется новое ключевое слово. Так...
Как «новое» работает за кулисами для выделения памяти, и как бы я справился с этим?
И как следствие ...
Имеет ли смысл пытаться использовать C ++, чтобы воспользоваться преимуществами его абстракций более высокого уровня? Или было бы больше головной боли использовать его, и я должен придерживаться C?
Пожалуйста, предоставьте обоснование, если вы считаете, что C ++ не будет хорошим выбором.