调用父函数中被覆盖的子函数
call overwritten child function within parent function
在c++中是否可以从父函数调用子函数。
举个例子:父类在函数中定义(解析(通用工作流。然后,工作流调用表示流的一部分的不同方法(parseElementA(。这些函数可以被子类覆盖,如果不能使用作为父类一部分的standart函数的话。
我的问题是:我创建一个子对象并执行工作流函数(解析(。当在工作流函数中调用覆盖的函数(parseElementA(时,它从父函数而不是从子函数调用该函数。我该怎么做呢?它调用child中的重写函数。
class Parent {
public:
void parse() { parseElementA(); }
virtual void parseElementA() { printf("parentn"); }
};
class Child : public Parent {
public:
void parseElementA() { printf("childn"); }
};
Child child;
child.parse();
输出为父级。我该怎么办,它还孩子。
非常感谢你的建议。
修复代码中的编译器错误后,它可以正常工作。
#include <cstdio>
class Parent {
public:
void parse() { parseElementA(); }
virtual void parseElementA() { printf("parentn"); }
};
class Child : public Parent {
public:
void parseElementA() { printf("childn"); }
};
int main() {
Child child;
child.parse();
return 0;
}
相关文章:
- 从 c 或 cpp 系列子函数返回到主函数
- 被覆盖的函数不会反映在基类中,这是正常行为吗?
- 为什么覆盖虚函数时需要显式模板参数?
- C++:为什么我的掷骰子函数在掷骰子数量时只返回偶数整数?
- 禁止子函数调用父级的抽象(或虚拟)函数
- 在多个头文件中从接口声明被覆盖的函数时,如何避免重复代码?
- 我想要一个具有子函数的函数访问相同的命名函数,而不使用它取决于其子类的类
- 当存在覆盖歧义函数时,代码如何运行?
- 使用不同的返回类型覆盖虚拟函数
- 添加字符串类型的类成员会导致调用基类函数而不是子函数
- 如何声明从 QApplication 派生的 Qt 类并覆盖通知函数?
- C++调用子函数
- C++ 使用不同的返回类型覆盖虚拟函数
- 运行时检查实例 (Base*) 是否覆盖父函数 (Base::f())
- 如何在C++从父实例调用子函数
- 通过覆盖虚拟函数来获取'unresolved external symbol'
- 部分覆盖虚拟函数
- 为什么子类覆盖虚拟函数不能更改父类的默认函数参数
- 视觉 是否可以覆盖子类中的函数C++而无需对抽象的父类中的函数使用 virtual 关键字
- 调用父函数中被覆盖的子函数