21xrx.com
2024-09-19 09:56:42 Thursday
登录
文章检索 我的文章 写文章
如何在C++中让子类调用父类的方法?
2023-07-05 00:22:11 深夜i     --     --
C++ 继承 子类 父类 方法调用

在C++中,子类可以从父类中继承方法和属性,但有时子类需要调用父类中的方法来完成一些特定操作。这时可以采用以下两种方法:

1. 使用父类的方法名来调用

使用父类的方法名直接调用父类中的方法。这种方法可以在子类的定义中调用父类中的方法。例如:


class Parent {

public:

  void foo()

    cout << "Parent foo called" << endl;

  

};

class Child : public Parent {

public:

  void foo() {

    Parent::foo(); // 调用父类中的方法

    cout << "Child foo called" << endl;

   }

};

在子类的foo方法中通过Parent::foo()来调用父类的foo方法。这可以保证父类中的方法先被执行,然后结合子类自身的实现。

2. 使用虚函数(virtual function)

使用虚函数可以让子类重写父类中的同名方法,并在需要调用的时候调用父类中的方法。 此时,应该在父类中声明一个虚函数,让子类可以重写/继承实现。例如:


class Parent {

public:

  virtual void foo()

    cout << "Parent foo called" << endl;

  

};

class Child : public Parent {

public:

  void foo() {

    Parent::foo(); // 调用父类中的方法

    cout << "Child foo called" << endl;

   }

};

在这个例子中,我们在Parent类中定义一个虚方法foo,在子类Child中重写了这个方法。当在子类中调用foo()时,它会优先调用Parent::foo(),然后再调用子类Child的foo()方法,以达到优先执行父类方法的效果。

无论是采用第一种方法还是第二种方法,都可以让子类调用父类的方法。如果仅需要在子类调用父类的一个方法,则可以采用第一个方法,如果需要在子类中重写整个方法并保留父类实现,则应采用第二种方法。最终的方法取决于具体的情况和需求。

  
  

评论区

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