在父函数中调用覆盖的子函数
C++中是否可以从父函数调用子函数。
让我们举个例子:父类在函数(解析)中定义一般工作流程。然后,工作流调用代表流程一部分的不同方法 (parseElementA)。这些函数可以被子类覆盖,如果不是标准函数,则应使用父类的一部分。
我的问题是:我创建一个子对象并执行工作流函数(解析)。当在工作流函数中调用覆盖函数 (parseElementA) 时,它会从父级而不是子级调用该函数。 我该怎么做才能调用 child 中被覆盖的函数。
class Parent {
public:
void parse() { parseElementA(); }
virtual void parseElementA() { printf("parent\n"); }
};
class Child : public Parent {
public:
void parseElementA() { printf("child\n"); }
};
Child child;
child.parse();
输出是父级。我能做什么让它返回孩子。
非常感谢您的任何建议。
is it possible in c++ to call a child function from a parent function.
Let's take an example: The parent class defines in a function (parse) the general workflow. The workflow then calls different methods which represent part of the flow (parseElementA). These functions can be overwritten by the child class, if not the standart function, which is part of the parent shall be used.
My issue is: I create a child object and execute the workflow function (parse). When the overwritten function (parseElementA) is called within the workflow function it calls the function from the parent and not from the child.
What could i do so it calls the overwritten function in child.
class Parent {
public:
void parse() { parseElementA(); }
virtual void parseElementA() { printf("parent\n"); }
};
class Child : public Parent {
public:
void parseElementA() { printf("child\n"); }
};
Child child;
child.parse();
the output is parent. What can I do that it returns child.
Thank you very much for any advice.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(2)
#include <cstdio>
class Parent {
public:
void parse() { parseElementA(); }
virtual void parseElementA() { printf("parent\n"); }
};
class Child : public Parent {
public:
void parseElementA() { printf("child\n"); }
};
int main() {
Child child;
child.parse();
return 0;
}
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
修复代码中的编译器错误后,工作正常。
After fixing compiler errors from your code, it works fine.