Я читал, что ранние «компиляторы» C ++ фактически переводили код C ++ на C и использовали компилятор C на бэкэнде, и это заставило меня задуматься. У меня достаточно технических знаний, чтобы осмыслить большую часть того, как это будет работать, но я не могу понять, как сделать наследование классов, не имея для этого языковой поддержки.
В частности, как вы определяете класс с несколькими полями, а затем с набором подклассов, которые наследуются от него, и каждый из них добавляет свои собственные новые поля и может передавать их взаимозаменяемо в качестве аргументов функции? И особенно, как вы можете это сделать, когда C ++ позволяет размещать объекты в стеке, поэтому у вас может даже не быть указателей, за которыми можно спрятаться?
ПРИМЕЧАНИЕ. Первые пару ответов, которые я получил, касались полиморфизма. Я знаю все о полиморфизме и виртуальных методах. Я даже однажды провел презентацию на конференции о низкоуровневых деталях работы таблицы виртуальных методов в Delphi. Меня интересует наследование классов и поля, а не полиморфизм.