c++ - c++中隐藏特定函数的一种方法

标签 c++ inheritance using private-members public-fields

我有一个继承struct A : public B,我想对B隐藏个别函数,这可能吗?

我知道在 A 声明中使用 using BMethod 可以实现相反的效果。

干杯

最佳答案

如果您想有选择地对 B 隐藏函数,那么首先使用公共(public)继承没有多大意义。
使用私有(private)继承并有选择地将 B 中的方法带入 A 的范围:

struct B{
   void method1(){};
   void method2(){};
};
struct A : private B{
   using B::method1;
};

A a;
a.method1();
a.method2(); //error method2 is not accesible

关于c++ - c++中隐藏特定函数的一种方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4908539/

相关文章:

c++ - 为什么将一个结构体的引用设置为等于另一个结构体只会改变一个数据成员?

c# - 将父类(super class)转换为特定的派生类型

c# - 将 FileStream 与 using 子句一起使用时,是否需要在 FileStream 上调用 DisposeAsync?

c# - 使用指令导入子命名空间

c++ - 使用 OpenCV 和 Matlab 从 RGB 到 YCbCr 的不同颜色转换

C++。我试图通过在开关中使用数组来获取用户输入,但是当我运行代码时它显示段错误?

c++ - 如何检索 C++ 类成员变量名?

c++ - Win XP x64 上的段错误在 XP x32 上不会发生 - strncpy 问题?怎么修?

Javascript 继承 - 使用 .call 方法

c# - 为什么这个文件用了C1ZipFile后还是删不掉?