1

是否可以在 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();

输出是父级。我能做些什么让它返回孩子。

非常感谢您的任何建议。

4

2 回答 2

9

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

于 2011-07-04T08:03:11.943 回答
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;
}
于 2011-07-04T08:11:36.103 回答