21xrx.com
2025-03-29 21:28:49 Saturday
文章检索 我的文章 写文章
C++中父类如何调用子类的函数
2023-06-29 02:35:02 深夜i     15     0
C++ 继承 多态 父类调用子类函数

在C++中,父类可以通过虚函数和纯虚函数来调用子类的函数。

虚函数是指在父类中被声明为虚函数的函数,在子类中可以被重写。父类通过调用这个虚函数来间接地调用子类中的同名函数。这个过程在编译时期就已经确定了。在父类中定义一个虚函数,子类如果重写该虚函数,那么在子类中可以通过super::xxx(xxx为函数名)的方式来调用父类中的同名函数。

下面是一个例子:

class Parent {
public:
  virtual void doSomething()
    cout << "Parent do something!" << endl;
  
};
class Child : public Parent {
public:
  void doSomething()
    cout << "Child do something!" << endl;
  
};
int main() {
  Parent *p = new Child();
  p->doSomething(); //调用了子类的函数
  delete p;
  return 0;
}

纯虚函数是指在父类中声明了而没有实现的虚函数。纯虚函数必须在子类中实现,否则子类就不能被实例化。父类可以通过调用纯虚函数来间接地调用子类中的同名函数。

下面是一个例子:

class Parent {
public:
  virtual void doSomething() = 0;
};
class Child : public Parent {
public:
  void doSomething()
    cout << "Child do something!" << endl;
  
};
int main() {
  Parent *p = new Child();
  p->doSomething(); //调用了子类的函数
  delete p;
  return 0;
}

通过虚函数和纯虚函数,父类可以方便地调用子类中的函数。为了更好地利用面向对象的特性,建议在父类中声明虚函数或者纯虚函数。

  
  

评论区

请求出错了