C++ 继承——为什么我的函数没有被使用?

标签 c++ oop class inheritance virtual

我有一个 IBase 类,其中包含 virtual void CastData(){}。它在另一个函数中使用。

我有另一个完全不相关的类IC

virtual void CastData(){
    for (FunctionIterator it(funcs.begin()); it != funcs.end(); ++it){
        DataType dataCopy;
        dataCopy = *dataElement;
        (*it)(dataCopy);
    }
}

现在我想创建一个新类,其中 C 的 CastData 将覆盖基类的 CastData。

所以我尝试类似 IGraphElement 类:公共(public) IBase,公共(public) IC

所有功能均正常运行。所有 IC 功能都运行,但 IBase CastData 未被覆盖。

当您继承的类的虚函数覆盖您继承的另一个类的虚函数时,如何进行此类覆盖?

最佳答案

虚函数必须被派生类覆盖,而不是另一个基类。也许在 IGraphElement 中提供一个覆盖,调用 IC 来完成工作。

关于C++ 继承——为什么我的函数没有被使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4870279/

相关文章:

javascript - 选择子类的输入值

用于级联继承的 C++ 可变参数模板。如何向上转换?

c++ - std::vector 上的嵌套循环

java - 我的数据库应用程序已停止工作且无法打开

C++ 继承,隐藏的基本方法

css - 在 CSS 中更改类的背景颜色不起作用?

c++ - 如何获取指向 2D std::vector 内容的指针

C++ 如何将 double 的全精度写入 .dat 文件

java - oop 中的多态性

c++ - 全局变量和枚举之间的范围问题