R.3.6.2 Производные типы

We use cookies. Read the Privacy and Cookie Policy

R.3.6.2 Производные типы

Существует потенциально бесконечное число производных типов, которые строятся из основных типов следующими способами:

массив объектов данного типа, §R.8.4;

функции, имеющие параметры данного типа и возвращающие объекты данного типа, §R.8.2.5;

указатели на объекты или функции данного типа, §R.8.2.1;

ссылки на объекты или функции данного типа, §R.8.2.2;

константы, являющиеся значениями данного типа, §R.7.1.6;

классы, содержащие совокупность объектов различных типов (§R.9), набор функций для управления этими объектами (§R.9.3) и и список ограничений на доступ к этим объектам и функциям, §R.11;

структуры, которые являются классами без стандартных ограничений на доступ, $$r.11;

объединения, которые являются структурами, способными содержать в разное время объекты различных типов, §R.9.5;

указатели на члены классов, которые задают члены данного типа среди всех объектов данного класса, §R.8.2.3.

В общем случае указанные методы построения объектов могут применяться рекурсивно, ограничения приведены в $$r.8.2.1, §R.8.2.4, §R.8.2.5 и §R.8.2.2.

Про указатель на объекты типа T говорят "указатель на на T". Например, про указатель на объект типа int говорят "указатель на int", а указатель на объект класса X называется "указатель на X".

Объекты типа void* (указатель на void), const void* и volatile void* могут использоваться как указатели на объекты неизвестного типа. Объект типа void* должен иметь достаточно памяти, чтобы хранить указатель на любой объект.

Все фрагменты руководства, говорящие об "указателях", не относятся к указателям на члены, за исключением указателей на статические члены.