21xrx.com
2024-09-20 00:38:42 Friday
登录
文章检索 我的文章 写文章
C++继承:如何调用父类?
2023-07-05 12:02:35 深夜i     --     --
C++ 继承 调用父类 父类函数 子类函数

C++是一种强大的面向对象编程语言。继承是面向对象编程的核心概念之一,它允许子类继承并重用父类的代码。在C++中,使用关键字“public”、“protected”和“private”继承基类。

当一个类继承另一个类时,它可以使用基类的成员变量和成员函数。在子类中,你可以通过使用作用域解析运算符“::”调用父类中定义的成员函数或变量。

例如,假设有一个名为Animal的基类,它有一个名为“walk”的公共成员函数,表示动物可以行走。现在,让我们创建一个子类Dog,它从Animal中继承了“walk”函数。我们可以通过以下方法调用从父类继承的函数:

class Animal {

public:

  void walk()

   cout << "Animal walking" << endl;

};

class Dog : public Animal {

public:

  void bark()

   cout << "Woof" << endl;

  void dogWalk() {

   Animal::walk();

  }

};

在这个例子中,子类Dog定义了一个新的成员函数bark(),并继承了父类Animal的walk()函数。在子类Dog的新函数dogWalk()中,我们通过使用“::”操作符调用了从父类Animal中继承的函数walk()。

此外,你也可以不使用作用域解析运算符来调用父类的函数。当你在子类中定义与父类中的函数同名的函数时,子类中的函数名称将覆盖父类中的函数名称。在这种情况下,你可以使用关键字“using”来调用父类中的成员函数。

例如,我们可以添加一个新的成员函数walk()到子类Dog中:

class Dog : public Animal {

public:

  void bark()

   cout << "Woof" << endl;

  void walk()

   cout << "Dog walking" << endl;

  void dogWalk() {

   using Animal::walk;

   walk();

  }

};

在这个例子中,子类Dog定义了一个新的成员函数walk(),并使用“using”关键字来调用从父类Animal中继承的函数walk()。在子类Dog的新函数dogWalk()中,我们重新定义了walk()函数并覆盖了从父类继承的原始函数。然后,我们使用“::”操作符调用了Animal的原始walk()函数,并通过调用新定义的walk()函数来演示覆盖的效果。

总之,在C++中调用从父类继承的成员函数和变量并不难。你可以使用作用域解析运算符来访问已经定义的从父类继承的变量和函数。或者,你可以使用“using”关键字来防止子类中定义新函数时把从父类继承的同名函数覆盖。无论哪种方式,继承使得子类能够轻松地重用父类的现有代码来实现更多的功能。

  
  

评论区

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