C++模板编程学习-using-declaration中的依赖型名称

《C++ Templates》 9.3.4 using-declaration中的依赖型名称

学无止境,看到C++模板的第九章中的使用声明从两个位置(类和名字空间)引入名称,当引入名字空间不会涉及上下文问题,因为并不存在名字空间模板,但使用类引入名称的using-declaration能力有限,只能把基类的名称引入到派生类。这种using-declaration的行为有些类似于派生类访问基类的符号链接或者快捷方式。书中举例代码:

class  BX {
  public:
      void f(int);
      void f(char const *);
      void g();
};

class  DX: private BX {
  public:
    using BX::f;

};

当看到上述代码,第一感觉就是这是C++单例模式啊!using-declaration引入基类(BX)中的名称f到派生类DX中。using-declaration将以前不能访问的成员现在变为可以访问的。

posted @ 2022-10-22 22:04  合滨  阅读(69)  评论(0编辑  收藏  举报