С++ — это статически типизированный язык. Я не могу понять, почему так, если, например, понижающее приведение типов (dynamic cast, разумеется) в ветке наследования с полиморфным родителем является проверкой типов во время выполнения программы.
То есть если вкратце, то меня смущает то, что все называют этот ЯП статически типизированным, в то время, когда тут есть элементы динамической типизации.
Насколько я понимаю, в языках с динамической типизацией (например, Python, JavaScript, Lisp ..., не говоря уж о разных Shell-ах) один и тот же идентификатор (переменная) может иметь значения разных типов во время выполнения программы.
В C++ же, тип данных, значения которого может принимать переменная, определяется статически (во время написания программы).
Поэтому наличие механизма RTTI (в частности dynamic cast
), проводящего некоторые проверки типов во время выполнения, не делает C++ языком с динамической типизацией.
Наверное, потому что тип наследника ЯВЛЯЕТСЯ типом родителя, так что проверка допустимости типов все-таки выполняется во время компиляции, т.е. является статической.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Ввод строки работает правильно вне switch, если хочу вызвать функцию через switch ,то после ввода строки зависает с сообщением "Прекращена работа
Например ввести команду ls, и считать список файлов в директории