【发布时间】:2019-01-07 04:42:44
【问题描述】:
我有一个问题,我只需要继承一次基类。之后我想阻止任何人继承这个类。有人可以解释一下如何实现这一点。此外,如果基类被继承的次数是 n 次(例如 1 ..10),那么通用的方法是什么。
我知道在基类中使用朋友类可以在一定程度上解决我的问题。但我觉得这很笨拙。我也读过Restrict inheritance to desired number of classes at compile-time。我无法完全理解答案。
有人可以建议我在 C++ 编译时限制继承的更好方法吗?
【问题讨论】:
-
我发现继承树的深度是理解类的主要障碍。很高兴你问如何限制它。
-
@MarkRansom 据我所知,OP 正在询问如何限制继承树的宽度,而不是深度。
-
您真的需要允许一定数量的未知派生类吗?或者您需要防止任何不在特定预期实现中的其他派生类?你能说一下为什么吗?这听起来像是 X-Y 问题;可能有更好的方法来防止其他派生类可能造成的任何伤害。
-
“而且如果它可以在运行时限制继承就好了。” 你什么意思?我们无法在运行时创建类/层次结构...
-
这听起来像是一个错误的功能。记录你的类做了什么以及它打算如何使用。如果有人滥用它,那是他们的问题,而不是你的问题。
标签: c++ inheritance