在父函数中调用覆盖的子函数

Ste*_*ood 1 c++ compiler-errors syntax-error virtual-inheritance

是否可以在c ++中从父函数调用子函数.

我们举个例子:父类在函数中定义(解析)一般工作流.然后,工作流调用表示流的一部分的不同方法(parseElementA).这些函数可以被子类覆盖,如果不是标准函数,则应使用父类的一部分.

我的问题是:我创建一个子对象并执行工作流功能(解析).当在工作流函数中调用覆盖函数(parseElementA)时,它从父级而不是从子级调用函数.我怎么办呢,它调用了孩子的覆盖功能.

    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();
Run Code Online (Sandbox Code Playgroud)

输出是父.我能做什么让它回归孩子.

非常感谢您的任何建议.

iam*_*ind 9

修复代码中的编译器错误后,它可以正常工作.