在 public 中使用 X::func

Use of using X::func in public

最近我遇到了如下所示的代码。它实现了什么?我们如何将对象的私有部分带到 public 空间?我知道使用 BX::f 的用法,如果派生 class 隐藏基本 class 函数。

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

它使 f 函数成为 DX 的 public 成员,但没有使 BX 中的任何其他内容可访问。

这些函数已经是 BX 的 public 成员,因此这不会破坏封装。