21xrx.com
2024-12-26 16:16:09 Thursday
登录
文章检索 我的文章 写文章
如何在C++中让子类调用父类函数
2023-07-03 02:16:43 深夜i     --     --
C++ 子类 父类 调用函数 继承

在C++面向对象编程中,子类可以继承父类的属性和方法。有时候,在子类中需要重写父类的某个方法,但同时需要在子类中调用该方法已有的实现。这时候,就需要子类调用父类的函数。下面讨论如何在C++中实现子类调用父类函数。

1. 使用作用域解析运算符

在C++中,使用作用域解析运算符“::”可以调用父类的函数。如果在子类中重写了父类的函数,在子类中可以使用作用域解析运算符来指定调用父类的函数。例如:


class Parent {

public:

  void func() {

    std::cout << "This is Parent's func()." << std::endl;

  }

};

class Child : public Parent {

public:

  void func() {

    Parent::func(); // 调用父类的函数

    std::cout << "This is Child's func()." << std::endl;

  }

};

int main() {

  Child c;

  c.func();

  return 0;

}

输出:


This is Parent's func().

This is Child's func().

在这个例子中,Child类继承了Parent类,并重写了父类的func()函数。然后,在Child的func()函数中,使用Parent::func()来调用父类的func()函数。在执行Child的func()函数时,首先输出父类的func()函数的内容,然后输出子类的func()函数的内容。

2. 使用关键字“super”

如果使用Java等其他的面向对象编程语言,可以使用关键字“super”来调用父类的方法。在C++中没有“super”关键字,但可以手动定义一个“super”函数来实现相同的效果。例如:


class Parent {

public:

  void func() {

    std::cout << "This is Parent's func()." << std::endl;

  }

};

class Child : public Parent {

public:

  void super() {

    Parent::func(); // 调用父类的函数

  }

  

  void func() {

    super(); // 调用父类的函数

    std::cout << "This is Child's func()." << std::endl;

  }

};

int main() {

  Child c;

  c.func();

  return 0;

}

输出:


This is Parent's func().

This is Child's func().

在这个例子中,Child类重写了父类的func()函数,并定义了一个“super()”函数来调用父类的func()函数。在Child的func()函数中,调用“super()”函数来调用父类的func()函数,并输出并执行子类的func()函数。

总之,无论是使用作用域解析运算符,还是手动定义一个“super”函数,都可以在C++中实现子类调用父类函数的操作。在程序设计过程中,应该根据实际情况选择最合适的实现方法。

  
  

评论区

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