首页 > 解决方案 > 如何从父类调用子函数

问题描述

例如我有

class A
{
  void Afunction();
};

我有

#include "A.h"
class B: public A
{
   void Function();
   
};
    #include "B.h"
    class C
    {
       void UpdateStuff();
       void CreateStuff();
       B* Stuff;
    }

我需要打电话CreateStuff();Afunction();但我不能只是#include "C.h"有另一种方法可以做到这一点吗?

标签: c++

解决方案


您可以使用指向或引用子对象的 Parent 类的指针或引用来调用子函数。例如:

#include <iostream>
struct A
{
   virtual void Function()                            //Defination
   { std::cout << "Super_class: A\n"; }
   virtual ~A() {}
};

struct B
{
   virtual void Function() { std::cout << "Child_class\n"; }
};

int main()
{
 A *obj1 = new B;
 obj1->Function();
 B obj2;
 obj2.A::Function();      //Calling to Parent class function(A)
 obj2.Function();         //Calling to Child class function(B)
}

推荐阅读