C++11新特性-使用别名(alias)

传统

传统使用别名的方法是用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指针类型。

你可能感兴趣的:(C++11新特性-使用别名(alias))