21xrx.com
2024-12-22 22:22:31 Sunday
登录
文章检索 我的文章 写文章
C++子类如何调用父类函数?
2023-07-06 03:04:34 深夜i     --     --
C++ 子类 调用 父类函数

C++是一种面向对象的编程语言,支持继承和多态等特性。在C++中,子类可以继承父类的成员函数和成员变量,同时也可以重新定义和扩展这些成员。如果子类想要调用父类的成员函数,有以下几种方式可以实现。

1.使用作用域解析符号(::)

作用域解析符号(::)可以用于区分同名的成员函数或变量,也可以通过父类作用域访问父类的成员函数。例如,如果父类名称为BaseClass,父类的成员函数名称为print(),则子类可以通过类作用域访问父类的成员函数:


class DerivedClass : public BaseClass {

public:

  void foo() {

    BaseClass::print();

  }

};

2.使用关键字super

Java中有一个关键字super,可以用来调用父类的成员函数或者父类的构造函数。C++中没有类似的关键字,但可以通过定义一个使用父类指针的成员函数来实现类似的功能。例如:


class BaseClass {

public:

  void print()

    cout << "Hello from BaseClass" << endl;

  

};

class DerivedClass : public BaseClass {

public:

  void print()

    cout << "Hello from DerivedClass" << endl;

  

  void foo() {

    BaseClass* base = this;

    base->print(); // 调用父类的成员函数

  }

};

3.使用virtual和override关键字

通过使用virtual和override关键字,可以在父类和子类之间建立虚函数,从而实现多态。在子类中重写父类的虚函数时,可以使用override关键字来表示该函数是覆盖父类的虚函数。例如:


class BaseClass {

public:

  virtual void print()

    cout << "Hello from BaseClass" << endl;

  

};

class DerivedClass : public BaseClass {

public:

  void print() override

    cout << "Hello from DerivedClass" << endl;

  

  void foo() {

    BaseClass* base = this;

    base->print(); // 调用子类的print函数

  }

};

总的来说,C++中子类调用父类的函数可以通过作用域解析符、使用父类指针的成员函数和使用虚函数等方式来实现,具体应该根据实际情况进行选择。熟练掌握这些方法不仅可以提高开发效率,也能避免很多编程错误。

  
  

评论区

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