C++ :: Хилл Мюррей
Страница: 139 из 139 | |||
| ||||||||||||||
| ||||||||||||||
КАТЕГОРИИ КНИГПОСЛЕДНИЕ ОТЗЫВЫ О КНИГАХМихаил (19.04.2017 - 06:11:11) Антихрист666 (18.04.2017 - 21:05:58) Ладно, теперь поспешили вы... (18.04.2017 - 20:50:34) Роман (18.04.2017 - 18:12:26) АНДРЕЙ (18.04.2017 - 16:42:55) СЛУЧАЙНОЕ ПРОИЗВЕДЕНИЕЧи існує дружба на світі? 29.08.10 - 08:51 Хотите чтобы ваше произведение или ваш любимый стишок появились здесь? добавьте его! |
Объекты данных могут быть константными (const); #8.3. Могут быть описаны объекты ссылочного типа; #8.4, #8.6.3 Операции new и delete обеспечивают свободное хранение в памяти, #7.2. Классы могут обеспечивать сокрытие данных (#8.5.9), грантированную инициализацию (#8.6.2), определяемые пользовтелем преобразвания (#8.5.6), и динамическое типизирование через использование виртуальных функций (#8.5.4). Имя класса или перечисления является именем типа; #8.5. Любой указатель может присваиваться void* без применеия приведения к типу; #7.14. Описание внутри блока является оператором; #9.14. Можно описывать безымянные объединения; #8.5.13. 15.2 Сводка Несовместимостей Большинство конструкций C допустимы в С++ без изменения их смысла. Исключения из этого следующие: Программы, использующие одно из новых ключевых слов class const delete friend inline new operator overload public signed this virtual volatile как идентификаторы, недопустимы. Описание функции f(); означает, что f не получает парметров, в C же это значит, что f может получать параметр свершенно любого типа. В C внешнее имя может определяться несколько раз, а в С+ + оно должно быть определено ровно один раз. Имена классов в С++ находятся в том же пространстве, что и прочие имена, поэтому конструкции вроде int s; struct s (* /* ... */ *); f() (* s = 1; *) использоваться не могут. Однако, для разрешения болшинства конфликтов может применяться явное использование class, struct, union, enum (#8.2) или :: (#7.1). Например: int s; struct s (* /* ... */ *); void f() (*int s; struct s a; *) void g() (* ::s = 1; *) 15.3 Анахронизмы Изложенные здесь расширения могут предоставляться для того, чтобы упростить использование C программ как С++ прорамм. Обратите внимание, что каждая из этих возможностей сдержит нежелательные аспекты. Предоставляющая их реализация должна также обеспечивать пользователю способ удостовериться, что они не встречаются в исходном файле. Прежнее неопределенное имя может использоваться как имя функции в вызове. В этом случае имя будет неявно описано как функция, возвращающая int с типом параметра (...). Ключевое слово void может использоваться для указания того, что функция не получает параметров, так что (void) эвивалентно (). Могут использоваться программы, в которых используется синтаксис определения функций в C старое_определение_функции: спецификаторы_описания opt старый_описатель_функции список_описателей тело_функции старый_описатель_функции: описатель (* список_параметров *) список_параметров: идентификатор идентификатор , идентификатор например, max(a,b) (* return (a«b) ? b : a; *) Если функция, описанная как эта, была ранее описана, тип ее параметра будет принят (...), то есть, непроверенный. Если она была описана, ее тип должен согласоваться с типом описния. Вместо :: может использоваться точка для спецификации имени в определении функции члена. Например: int cl.fct() (* /* ... */ *) Одно и то же имя может быть описано одновременно и для класса или перечисления, и для объекта данных или функции в одной и той же области видимости. |
ИНТЕРЕСНОЕ О ЛИТЕРАТУРЕ
ТОП 20 КНИГ
ТОП 20 АВТОРОВ
| ||||||||||||
|