21xrx.com
2024-11-05 19:29:09 Tuesday
登录
文章检索 我的文章 写文章
C++中父类如何调用子类的函数
2023-06-29 02:35:02 深夜i     --     --
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;

}

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

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复