类型取别名,可以用typedef关键字,一般将类型名比较长的,再取个别名,在使用时会更方便。写几个用typedef关键字取的别名:
1 2 3 4 5 6 7 |
typedef std::vector<long> vecl; typedef std::vector<double> vecd; typedef std::vector<int> veci; vecl akas; vecd kims; veci kkks; |
可以看出用typedef重定义别名后,在实际使用中会方便。
但有个可以思考的地方,如果像函数模板一样(vector<T>),哪是不是可以又不用写3句取别名?
对,这就是C++11中的模板别名,具体语言法如下:
1 2 3 4 5 6 7 |
template<typename T> using vectype = std::vector<T>; vectype<long> akas; vectype<double> kims; vectype<int> kkks; |
C++11中using=语法运用
using=用于非模板C++11也是支持的,这样写的意义就是相等于typedef取别名一样。但用using=这种语法,可读性会更强。
1 2 3 4 5 6 7 |
using vectype = std::vector<double>; vectype kims; typedef const int* pi; using pi1 = const int*; |