Skip to content

using

using 关键字在C++中的用途:

  • using 声明:引入特定名称到当前作用域

  • using 指令:引入整个命名空间(谨慎使用)

  • 类型别名:创建类型别名(现代C++替代typedef)

  • 模板别名:创建模板类型别名(C++11)

  • 继承控制:

    • 引入基类成员到派生类作用域
    • 改变成员访问权限
    • 继承构造函数(C++11)
  • 枚举项引入:引入枚举项到作用域(C++20)

  • 概念别名:创建概念别名(C++20)

最佳实践:

  • 优先使用 using 而非 typedef

  • 在头文件中避免 using namespace

  • 使用类型别名提高代码可读性

  • 在继承中谨慎使用 using 声明

  • 限制 using 声明的作用域

类型别名

创建类型别名(现代C++替代typedef)

cpp
// C++98/03 使用typedef
typedef int IntType;
typedef void (*OldFuncPtr)(int, int);

// C++11 开始可以使用using创建类型别名
using IntType = int;
using NewFuncPtr = void(*)(int, int);