处理类型
前言
随着程序越来越复杂,程序中用到的类型也越来越复杂,这种复杂体现在两个方面。一是一些类型难于“拼写”,它们的名字既难记又容易写错,还无法明确体现其真实目的和含义。二是有时候根本搞不清到底需要的类型是什么,程序员不得不回过头去从程序的上下文中寻求帮助。
一、类型别名
类型别名(type alias)是一个名字,它是某种类型的同义词。使用类型别名有很多好处,它让复杂的类型名字变得简单明了,易于理解和使用,还有助于程序员清楚地知道使用该类型的真实目的。
有两种方法可用于定义类型别名。传统的方法是使用关键字typedef:
typedef double wages; //wages是double的同义词,即可以输入wages替代double
typedef wages base, *p; //base是double的同义词,p是double*的同义词
含有typedef的声明语句定义的不再是变量而是类型别名。
1.C++11新写法
C++11新标准规定了一种新的写法,使用别名声明来定义类型的别名:
using SI = Salse_item; //SI是Salse_item的同义词
这种方法使用关键字using作为别名声明的开始,其后紧跟别名和等号,其作用是把等号左侧的名字规定成等号右侧类型的别名。
2.类型别名和类型的名字使用范围
类型别名和类型的名字等价,只要是类型的名字能出现的地方,就能使用类型别名:
wages hourly, weekly; //等价于double hourly,weekly;
SI item;