c++ - 在父函数中调用覆盖的子函数

标签 c++ compiler-errors syntax-error virtual-inheritance

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

举个例子:父类在一个函数(parse)中定义了一般的工作流程。然后工作流调用代表流的一部分的不同方法 (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();

输出是父级。我该怎么做才能返回 child 。

非常感谢您的任何建议。

最佳答案

修复代码中的编译器错误后,it works fine .

关于c++ - 在父函数中调用覆盖的子函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6568778/

相关文章:

涉及函数声明两次且类型不同的编译错误

build - 在Mac OS X Lion(10.7)上使用XCode 4.1和iOS 4.3生成问题

c++ - 为什么我不能让矩形在 Opencv 中正确显示?

c++ - 将方法作为模板参数传递 C++11

objective-c - 架构armv7和Phonegap的 undefined symbol

php - 语法问题或wordpress帖子ID问题

compilation - Cython对cdef类抛出SyntaxError

c - 错误: expected identifier or '(' with C array declaration

python - 如何包装按类型重载的函数?

c++ - 需要在 C++ 中获取 CString 数组的大小