传统
传统使用别名的方法是用typedef关键字。如:
typedef double wages;
typedef wages base, *p;
C++11引入了一种新的使用别名的方式,叫作:别名声明(alias declaration)。
using SI = Sales_item;
typedef的缺陷
typedef char *pstring; //pstring是char*的别名
const pstring cstr = 0; //cstr is a constant pointer to char. const指针,而不是指向const对象的指针
const pstring *ps; //ps is a pointer to constant pointer to char
不能将cstr简单的用char*来替换:
const char *cstr = 0; //这样理解cstr是不对的,pstring基本类型是指针类型,而这里基本类型是const char
如果用using pstring = char *; 来代替typedef,可以减少这种误解。这样可以明显的提醒大家pstring是char指针类型。