21xrx.com
2025-04-17 15:50:12 Thursday
文章检索 我的文章 写文章
C++ 如何调用父类函数?
2023-07-05 10:57:13 深夜i     27     0
C++ 调用 父类函数

C++是一种面向对象的编程语言,其中一个重要的特性就是继承。继承使得子类可以继承父类的属性和方法,同时还可以重写父类的方法。然而,在某些情况下,子类需要调用父类的方法,本文将介绍C++如何调用父类函数。

在C++中,子类可以通过调用父类的方法来实现对父类函数的调用。这可以通过使用“父类名::方法名”这种语法来实现。例如,在下面的代码中,子类Square调用了其父类Rectangle的getArea方法:

class Rectangle {
 protected:
  int width, height;
 public:
  void setValues(int x, int y)
   width = x;
   height = y;
 
  int getArea() {
   return (width * height);
  }
};
class Square: public Rectangle {
 public:
  int getArea() {
   return (width * width);
  }
  int getRectangleArea() {
   return Rectangle::getArea();
  }
};
int main() {
 Square s;
 s.setValues(5,5);
 cout << "Square area: " << s.getArea() << endl; // 输出25
 cout << "Rectangle area: " << s.getRectangleArea() << endl; // 输出25
 return 0;
}

在上面的代码中,Square类继承自Rectangle类。Square类有一个名为getArea的方法,用于计算正方形的面积。由于正方形的面积只和它的边长有关,所以Square类重写了Rectangle类的getArea方法。

然而,在某些情况下,我们需要调用Rectangle类的getArea方法来计算正方形的面积。在上面的示例代码中,Square类增加了一个名为getRectangleArea的方法,它通过使用“::”运算符调用了Rectangle类的getArea方法来计算正方形的面积。

在调用父类方法时,需要注意的一点是,如果在父类方法中使用了该类的成员变量或成员函数,那么子类访问父类方法时必须先设置父类中相应的成员变量。例如,在上面的示例代码中,Square类在调用Rectangle类的getArea方法之前必须先设置width和height成员变量的值。

需要注意的是,如果父类方法被声明为虚函数,则可以使用父类指针或引用来调用子类中的同名函数。这被称为多态性,是C++中面向对象编程的一个重要特性。

总之,C++中使用“::”运算符可以轻松地调用父类方法。这种方式可以让子类重用父类中的代码,同时还可以在重写父类方法的同时调用父类方法,以便实现更复杂的功能。

  
  

评论区

请求出错了