c++-定义类型别名

本文描述了C++中的3种定义“类型别名”的方式。

概述

  • C++定义“类型别名”的3种方式:
    • typedef
    • #define
    • using
1
2
3
4
5
typedef 原来类型名 新类型名;

#define 新类型名 原类型名

using 新类型名 = 原来类型名;

异同

  • 一般情况下,using与typedef所表述的意思没有区别。但是,涉及到为模板类型设置别名时,就出现差异了。C++编译器不支持使用typedef关键词为模板类设置别名,但是使用using的方式声明一个关键词却是允许的,这是C++11标准才有的。
  • #definetypedef的异同:
    • #define是在程序预处理阶段完成的 ,也叫宏定义;
    • #typedef是在编译的时候完成的;后者更为灵活方便;
    • #define在处理指针方面处理不好,typedef处理更加合适。

参考