21xrx.com
2024-12-22 22:38:55 Sunday
登录
文章检索 我的文章 写文章
C++中的继承和函数覆盖
2023-07-09 17:52:43 深夜i     --     --
C++ 继承 函数覆盖

C++是一种面向对象的编程语言,其中的继承和函数覆盖是面向对象编程中常用的特性。继承是指一个派生类(子类)可以继承一个基类(父类)的属性和方法,而函数覆盖则是指派生类中的方法名和参数列表与基类中的相同,从而覆盖掉了基类中的方法。

首先,让我们来看一下继承的使用方法。假设我们有一个基类Animal,其中有一个make_sound的方法可以输出动物发出的声音。我们现在要创建两个派生类Dog和Cat,并且让它们继承Animal类中的make_sound方法。我们可以这样写:

class Animal {

public:

 void make_sound()

  cout << "I am an animal." << endl;

};

class Dog: public Animal

public:

 //空白

;

class Cat: public Animal

public:

 //空白

;

在这个例子中,Dog和Cat类中并没有定义make_sound方法,但是它们可以继承自基类Animal中的make_sound方法。因此,我们现在可以使用以下代码:

Dog dog;

Cat cat;

dog.make_sound(); //输出"I am an animal."

cat.make_sound(); //输出"I am an animal."

现在,让我们来看一下函数覆盖的使用方法。假设我们想要为Dog类和Cat类定义一个新的make_sound方法,从而覆盖掉基类Animal中的make_sound方法。我们可以这样写:

class Dog: public Animal {

public:

 void make_sound()

  cout << "Woof!" << endl;

};

class Cat: public Animal {

public:

 void make_sound()

  cout << "Meow!" << endl;

};

在这个例子中,我们使用了与基类Animal中相同名称和参数列表的make_sound方法,从而覆盖了基类Animal中的make_sound方法。因此,我们现在可以使用以下代码:

Dog dog;

Cat cat;

dog.make_sound(); //输出"Woof!"

cat.make_sound(); //输出"Meow!"

通过这两个例子,我们可以看到继承和函数覆盖是多么的有用。它们使得程序更易于维护和扩展,同时也让面向对象编程更加灵活和可组合。

  
  

评论区

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