C++11类型别名

来源:互联网 发布:unity编程语言 编辑:程序博客网 时间:2024/05/22 05:03

有两种方法可以定义类型别名。传统方法是使用关键字typedef,另一种使用别名声明来定义类型别名。

typedef

关键词typedef作为声明语句中的基本数据类型的一部分出现,含有typedef的声明语句定义的不是变量而是类型别名。如:

typedef double wages;       //wages与double同义typedef wages base, *p;     //base与double同义,p与double*同义

类型别名与类型的名字等价,只要类型可以出现的地方,就可以使用类型别名。如:

wages hourly, weekly;       //声明了两个double类型的变量

别名声明

使用using作为别名声明的开始,其后紧跟别名和等号,作用为将类型左侧的名字规定为等号右侧类型的别名。如:

using double = wages;wages hourly, weekly;

指针、常量和类型别名

如:

typedef char *pstring;const pstring cstr = 0;     //cstr是指向char的常量指针(顶层)const pstring *ps;          //ps是一个指针,所指的对象是指向char的常量指针

pstring实际上就是指向char的指针,const pstring就是指向char的常量指针,而非指向常量字符的指针。并不可以用char *直接代替pstring如下:

const char * cstr = 0;      //错误,此为底层指针,为指向常量字符的非常量指针
原创粉丝点击