"Мюррэй Хилл, Бьярн Страустрап. Язык С++" - читать интересную книгу авторабыла проведена проверка определения C++, чтобы удостовериться в
том, что любая конструкциия, допустимая и в C и в C++, действительно означает в обоих языках одно и то же. Язык C сам эволюционировал за последние несколько лет, частично под влиянием развития C++ (см. Ростлер [11]). Предварительный грубый ANSI стандарт C [10] содержит синтаксис описаний функций, заимствованный из "C с Классами". Заимствование идей идет в обе стороны; например, указатель void* был придуман для ANSI C и - стр 14 - впервые реализован в C++. Когда ANSI стандарт разовьется несколько дальше, придет время пересмотреть C++, чтобы удалить необоснованную несовместимость. Будет, например, модернизирован препроцессор (#с.11), и нужно будет, вероятно, отрегулировать правила осуществления плавающей арифметики. Это не должно оказаться болезненным, и C и ANSI C очень близки к тому, чтобы стать подмножествами C++ (см. #с.11). Эффективность и структура C++ был развит из языка программирования C и за очень немногими исключениями сохраняет C как подмножество. Базовый язык, C подмножество C++, спроектирован так, что имеется очень близкое соответствие между его типами, операциями и операторами и иметь дело: числами, символами и адресами. За исключением операций свободной памяти new и delete, отдельные выражения и операторы C++ обычно не нуждаются в скрытой поддержке во время выполнения или подпрограммах. В C++ используются те же последовательности вызова и возврата из функций, что и в C. В тех случаях, когда даже этот довольно эффективный механизм является слишком дорогим, C++ функция может быть подставлена inline, удовлетворяя, таким образом, соглашению о записи функций без дополнительных расходов времени выполнения. Одним из первоначальных предназначений C было применение его вместо программирования на ассемблере в самых насущных задачах системного программирования. Когда проектировался C++, были приняты меры, чтобы не ставить под угрозу успехи в этой области. Различие между C и C++ состоит в первую очередь в степени внимания, уделяемого типам и структурам. C выразителен и снисходителен. C++ еще более выразителен, но чтобы достичь этой выразительности, программист должен уделить больше внимания типам объектов. Когда известны типы объектов, компилятор может правильно обрабатывать выражения, тогда как в противном случае программисту пришлось бы задавать действия с мучительными подробностями. Знание типов объектов также позволяет компилятору обнаруживать ошибки, которые в противном случае остались бы до тестирования. Заметьте, что использование системы типов для того, чтобы получить проверку параметров функций, защитить данные от случайного искажения, задать |
|
|