C++允许我们使用关键字typedef把一个数据类型设定成其他的名字(别名)。例如,如果需要使用许多QVector<Point2D>,并且希望能够少敲几次键盘(或者不幸使用了我们并不熟悉的Norwegian键盘,这会让我们难于确定尖括号的位置),那么就可以通过把这个typedef声明放在某个头文件中来实现这一点:
typedef QVector<Point2D> PointVector;
从此以后,就可以使用PointVector当做当作QVector<Point2D>的缩略形式。注意,类型的新名字需要放在旧名字的后面。typedef的语法有些故意地模仿了变量声明的形式。
在Qt中,使用typedef主要有三个原因:
1,方便性。Qt可以使用typedef把unsigned int 和 QList<QWidget>* 声明为uint 和 QWidgetList,从未可以大大节省击键的次数。
2,平台差异性。在不同的平台上,某些类型需要使用不同的定义形式。例如,qlonglong在Windows上定义为_int64,而在其他平台上则定义为longlong。
3,兼容性。Qt3中的类QIconSet在Qt4中被重命名为QIcon。为了帮助Qt3的用户能够把他们的应用程序移植到Qt4,当启用Qt3兼容性时,就会用typedef把QIconSet当作是QIcon的别名。
网友评论