using的三种用法
C++中using的三种用法 - 知乎 https://zhuanlan.zhihu.com/p/156155959
_EXPORT_STD using true_type = bool_constant<true>;
_EXPORT_STD using false_type = bool_constant<false>;
/// A flat buffer which uses the default allocator.
using flat_buffer =
basic_flat_buffer<std::allocator<char>>;
1、导入命名空间
使用C++在写不同的功能模块时,为了防止命名冲突,建议对模块取命名空间,这样在使用时就需要指定是哪个命名空间。
使用 using 导入命名空间,即使一个命名空间中的所有名字都在该作用域中可见,常见的如下:
// 导入整个命名空间到当前作用域
using namespace std;
// 只导入某个变量到当前作用域
using std::cout;
在.h头文件中,一般不应该使用using声明。
因为头文件的内容会拷贝到所有引用它的文件中去,如果头文件里有某个using声明,那么每个使用了该头文件的文件就都会有这个声明,从而可能产生名字冲突。
2、指定别名
C++ 11 通过 using 指定别名,作用等同于 typedef,但相比 typedef,逻辑更直观,可读性更好。
typedef int T; // 用 T 代替 int
using T = int; // 用 T 代替 int
3、在派生类中引用基类成员
代码如下:
如上图代码所示,尽管派生类 Derived 对 基类 Base 是私有继承,但通过 using 声明,派生类的对象就可以访问基类的 proteced 成员变量和 public 成员函数了。
注意:using只是引用,不参与形参的指定。