Язык программирования C++ для профессионалов

       

Эквивалентность типов


Два структурных типа считаются различными даже тогда, когда они имеют одни и те же члены. Например, ниже определены различные типы:

struct s1 { int a; }; struct s2 { int a; };

В результате имеем:

s1 x; s2 y = x; // ошибка: несоответствие типов

Кроме того, структурные типы отличаются от основных типов, поэтому получим:

s1 x; int i = x; // ошибка: несоответствие типов

Есть, однако, возможность, не определяя новый тип, задать новое имя для типа. В описании, начинающемся служебным словом typedef, описывается не переменная указанного типа, а вводится новое имя для типа. Приведем пример:

typedef char* Pchar; Pchar p1, p2; char* p3 = p1;

Это просто удобное средство сокращения записи.



Содержание раздела