|
||||
|
4.4 Производные Типы Кроме основных арифметических типов концептуально сществует бесконечно много производных типов, сконструированых из основных типов следующим образом: массивы объектов данного типа; функции, получающие аргументы данного типа и возвращащие объекты данного типа; указатели на объекты данного типа; ссылки на объекты данного типа; константы, являющиеся значениями данного типа; классы, содержащие последовательность объектов различных типов, множество функций для работы с этими объектами и набор ограничений на доступ к этим объектам и функциям; структуры, являющиеся классами без ограничений доступа; объединения, являющиеся структурами, которые могут в разное время содержать объекты разных типов. В целом эти способы конструирования объектов могут прменяться рекурсивно. Объект типа void* (указатель на void) можно использовать для указания на объекты неизвестного типа. 5. Объекты и Lvalue (Адреса) Объект есть область памяти. lvalue (адрес) есть выражние, ссылающееся на объект. Очевидный пример адресного выржения – имя объекта. Есть операции, дающие адресные выражния: например, если Е – выражение типа указатель, то *Е – адресное выражение, ссылающееся на объект, на который указвает Е. Термин «lvalue» происходит из выражения присваивания Е1=Е2, в котором левый операнд Е1 должен быть адресным (value) выражением. Ниже при обсуждении каждого оператора указывается, требует ли он адресные операнды и возвращает ли он адресное значение. 6. Преобразования Определенные операции могут в зависимости от их операдов вызывать преобразование значения операнда от одного типа к другому. В этой части объясняется, каков ожидаемый резултат таких преобразований. В #6.6 содержится краткое описание преобразований, требуемых наиболее стандартными операциями; оно будет дополняться по мере надобности в процессе обсуждния каждой операции. В #8.5.6 описываются преобразования, оределяемые пользователем. |
|
||