21xrx.com
2024-12-23 00:47:54 Monday
登录
文章检索 我的文章 写文章
C++中如何调用子类的基类函数
2023-07-05 06:22:01 深夜i     --     --
C++ 子类 基类函数 调用

在面向对象编程中,类与类之间常常会有继承关系。当一个子类继承了一个基类的函数时,如果想要在子类中使用基类函数,可以通过调用子类的基类函数来实现。

在C++中,如何调用子类的基类函数呢?

首先,假设有一个基类Animal和一个子类Dog,Dog继承了Animal的函数。现在在Dog类中需要调用Animal类的函数,可以通过以下方式实现:

1.通过作用域运算符“::”来调用基类函数。例如:


class Animal{

public:

  void eat()

    cout<<"Animal is eating"<<endl;

  

};

class Dog:public Animal{

public:

  void eat(){

    //调用基类函数

    Animal::eat();

    cout<<"Dog is eating"<<endl;

  }

};

int main(){

  Dog dog;

  dog.eat();

  return 0;

}

在Dog类的eat函数中,先通过作用域运算符调用了Animal类的eat函数,然后再执行Dog类的eat函数内容。这样就可以在子类中调用基类函数,同时还可以继续执行子类自己的代码。

2.将基类函数重写为虚函数。例如:


class Animal{

public:

  virtual void eat()

    cout<<"Animal is eating"<<endl;

  

};

class Dog:public Animal{

public:

  void eat(){

    Animal::eat();

    cout<<"Dog is eating"<<endl;

  }

};

int main(){

  Dog dog;

  Animal *animal=&dog;

  animal->eat();

  return 0;

}

在Animal类的eat函数前加上“virtual”关键字,表示该函数为虚函数。在Dog类中重写eat函数时,调用了Animal类的eat函数。在main函数中,将Dog类的对象指针转换成Animal类的指针,并调用eat函数。这样,就可以在父类中调用子类的重写函数,实现了多态。

总结起来,C++中可以通过作用域运算符调用子类的基类函数,也可以将基类函数重写为虚函数,实现在父类中调用子类的函数。选择哪种方式取决于实际应用的需求。

  
  

评论区

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