在 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 成员,因此这不会破坏封装。
最近我遇到了如下所示的代码。它实现了什么?我们如何将对象的私有部分带到 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 成员,因此这不会破坏封装。