Бьерн Страуструп.
Язык программирования С++
16
избежать некоторых проблем (см., например, [15]). Это не было сделано по следующим причинам:
(1) существуют миллионы строк программ на С, которые можно улучшить с помощью С++, но
при условии, что полной переписи их на язык С++ не потребуется;
(2) существуют миллионы строк библиотечных функций и служебных программ на С, которые
можно было бы использовать в С++ при условиях совместимости обоих языков на стадии
связывания и их большого синтаксического сходства;
(3) существуют сотни тысяч программистов, знающих С; им достаточно овладеть только новыми
средствами С++ и не надо изучать основ языка;
(4) поскольку С и С++ будут использоваться одними и теми же людьми на одних и тех же
системах многие годы, различия между языками должны быть либо минимальными, либо
максимальными, чтобы свести к минимуму количество ошибок и недоразумений. Описание С++
было переработано так, чтобы гарантировать, что любая допустимая в обоих языках
конструкция означала в них одно и то же.
Язык С сам развивался в последние несколько лет, что отчасти было связано с разработкой С++ [14].
Стандарт ANSI для С [27] содержит, например, синтаксис описания функций, позаимствованный из
языка "С с классами". Происходит взаимное заимствование, например, тип указателя void* был
придуман для ANSI С, а впервые реализован в С++. Как было обещано в первом издании этой книги,
описание С++ было доработано, чтобы исключить неоправданные расхождения. Теперь С++ более
совместим с языком С, чем это было вначале ($$R.18). В идеале С++ должен максимально
приближаться к ANSI C, но не более [9]. Стопроцентной совместимости никогда не было и не будет,
поскольку это нарушит надежность типов и согласованность использования встроенных и
пользовательских типов, а эти свойства всегда были одними из главных для С++.
Для изучения С++ не обязательно знать С. Программирование на С способствует усвоению приемов и
даже трюков, которые при программировании на С++ становятся просто ненужными. Например, явное
преобразование типа (приведение) , в С++ нужно гораздо реже, чем в С (см. "Замечания для
программистов на С" ниже). Тем не менее, хорошие программы на языке С по сути являются
программами на С++. Например, все программы из классического описания С [8] являются
программами на С++. В процессе изучения С++ будет полезен опыт работы с любым языком со
статическими типами.
Достарыңызбен бөлісу: