我想知道是否有可能从基类中“删除”成员/方法,或者更确切地说禁止它们被继承?
假设我有一个类 A
,它定义了一个下标运算符,并将该运算符的读/写存储在内部的 map 对象中。然后我创建继承自 A
的 B
。有什么方法可以从 B 中删除下标运算符,或者更确切地说,防止它被继承并从而成为 B 的一部分?
很抱歉这么冗长,但为了说清楚,我并不是在寻找诸如final关键字之类的功能,我想防止B重载A中的某些内容。我基本上想说的是“B,继承 A 的一切,除了 X”。我认为这是不可能的,最有可能的答案是“修复/改进你的设计”,只是认为无论如何询问也没有什么坏处。
最佳答案
将要“删除”的函数(或成员)设为私有(private),这样派生类将无法“看到它”。没有其他方法可以从派生对象中物理删除该函数(因为派生对象包含基类的拷贝,其中需要您的函数/成员),但是将其设为私有(private)可以保证派生对象无法访问它。
关于c++ - 可以删除继承的成员或阻止继承某些属性/方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23190135/