类型别名

类型别名:相当于给某种类型起了一个别名,多用于自定义类型,他让复杂的类型名字变得简单明了,易于理解和使用,还有助于程序员清楚地知道使用该类型的真实目的.

类型别名和类型名字等价,只要是类型的名字能出现的地方,就能使用类型别名.

1 SI item;  // 等价于 Sales_item item

 

一、两种方法:

1.传统方法:使用关键字 typedef   //  typedef 类型 类型别名;

2.c++11新标准:别名声明--用关键字 using 作为别名声明的开始,其后紧跟别名和等号,其作用是把等号左侧的名字规定成等号右侧类型的别名(有赋值的感觉,易于理解和记忆)   //  using 类型别名 = 类型;

1 using SI = Sales_item;   //  SI 是Sales_item 的同义词
2 typedef Sales_item SI;  //  SI 是Sales_item 的同义词

 

二、类型别名指代复合类型

typedef char * pstring;

const pstring cstr = 0;

上面用类型别名pstring指代char *,即pstring是指向char的指针,故const修饰的是指针,也即cstr是指向char的常量指针。// char* //指向 char 的指针

 

若我们尝试把类型别名替换成它本来的样子,以理解语句的含义,则有:const char * cstr;,这样我们错误地认为const修饰的是char。

所以这种理解是错误的。声明语句中用到pstring时,其基本数据类型是指针,而用char *重写后,数据类型就变成了char,*成为了声明符的一部分。即改写后的结果是,const char成了基本数据类型,声明了一个指向const char的指针,而正确的结果是声明了一个指向char的常量指针。

posted @ 2020-05-02 23:09  顾小朝  阅读(201)  评论(0编辑  收藏  举报