C++ 扩展类 强制某些方法私有
C++ Extending Class Forcing some methods private
我的问题很简单:~给定两个类,我想用其中一个来扩展另一个类,但将一些方法转换为private
:
Class B
public Method a();
public Method b();
public Method c();
Class A extends B
private Method a();
private Method b();
public Method c();
这可能吗,怎么可能?谢谢!
这就是私有继承的用途。
class A: private B
{
// All methods of class B are now private.
// To make some "public" again:
public:
Method c() { return B::c(); } // Call the private c-method from class B.
};
使用私有继承,基类 B 中的所有函数都将变为私有。
class A: private B
{
}
这里解释了C++中私有、公共和受保护继承之间的区别。
当您声明类 B 时,可以将继承类型从公共更改为私有。
class B : public A {
private:
baseMethod();
};
or
class B : private A {
public:
baseMethod();
};
对每种方法使用所需的适当重写。
看起来您不希望所有方法都变成私有。根据更改其可见性的方法的比例选择继承类型。
相关文章:
- 在 *.cpp 文件中实现的 c++ 函数/方法永远不会内联扩展吗?
- C++重构,扩展方法typedef
- 扩展中的日期时间对象方法C++问题
- 从库类扩展,然后如何让库调用派生类方法
- 对于我扩展此程序来计算最高10x10矩阵的倒数的最简单方法是什么
- 我想继承 SPIFFS 类来扩展它以用于我的方法.可能吗
- C++可扩展的工厂方法
- 如何调用QT快速2扩展插件的方法
- C#扩展方法类似物在C 中
- 在 Makefile 中处理多个扩展的优雅方法
- 通过宏扩展调用方法
- Python 扩展方法的分段错误
- 当可变参数模板类继承自模板参数时,在调用基类型的方法时扩展参数包
- 覆盖我正在扩展的嵌套类的方法
- 按特定顺序扩展可变参数模板值的最有效方法是什么?
- 如何在 Ruby-C++ 扩展C++类中编写非静态方法
- 重写扩展现有函数的方法
- 为什么这种搜索方法不可扩展
- 扩展此C++工厂实现的最佳方法
- 这种使用虚拟受保护方法扩展库的方式是否安全