Язык программирования 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;

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



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