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将以前不能访问的成员现在变为可以访问的。