21xrx.com
2024-11-22 09:54:44 Friday
登录
文章检索 我的文章 写文章
C++实现动物类的继承
2023-07-05 04:04:38 深夜i     --     --
C++ 动物类 继承

动物类的继承是C++中的一个重要概念,通过继承可以让一个类获得另一个类的所有特性,同时可以在此基础上添加新的特性和方法。下面我们来介绍如何使用C++实现动物类的继承。

首先,我们需要创建一个基类Animal,其中包括所有动物的共同特征和方法,例如名字、年龄、性别、颜色等。我们可以使用如下代码实现:


class Animal {

 protected:

  string name;

  int age;

  char gender;

  string color;

 public:

  Animal(string n, int a, char g, string c)

   name = n;

   age = a;

   gender = g;

   color = c;

  

  void eat()

   cout << "Animal " << name << " is eating." << endl;

  

  void sleep()

   cout << "Animal " << name << " is sleeping." << endl;

  

  void run()

   cout << "Animal " << name << " is running." << endl;

  

};

然后我们可以创建若干个派生类,每个派生类都继承了Animal类的所有特性和方法,并且还可以添加自己的特性和方法。例如我们可以创建一个Cat类和一个Dog类,它们分别继承Animal类,并且还有自己的特性和方法。如下所示:


class Cat : public Animal {

 public:

  Cat(string n, int a, char g, string c) : Animal(n, a, g, c) {}

  void climb()

   cout << "Cat " << name << " is climbing." << endl;

  

};

class Dog : public Animal {

 public:

  Dog(string n, int a, char g, string c) : Animal(n, a, g, c) {}

  void bark()

   cout << "Dog " << name << " is barking." << endl;

  

};

在以上代码中,Cat和Dog类都使用public关键字继承了Animal类。这意味着它们都可以访问Animal类的公有成员和方法。同时,它们也可以添加自己的公有成员和方法,例如Cat类有一个climb()方法,Dog类有一个bark()方法。

最后,我们可以使用这些类来创建具体的动物实例,如以下代码所示:


Cat cat("Tom", 2, 'M', "Gray");

Dog dog1("Bob", 3, 'M', "Brown");

Dog dog2("Lucy", 4, 'F', "White");

cat.eat();  // Animal Tom is eating.

cat.sleep(); // Animal Tom is sleeping.

cat.run();  // Animal Tom is running.

cat.climb(); // Cat Tom is climbing.

dog1.eat(); // Animal Bob is eating.

dog1.sleep();// Animal Bob is sleeping.

dog1.run(); // Animal Bob is running.

dog1.bark(); // Dog Bob is barking.

dog2.eat(); // Animal Lucy is eating.

dog2.sleep();// Animal Lucy is sleeping.

dog2.run(); // Animal Lucy is running.

dog2.bark(); // Dog Lucy is barking.

以上代码展示了Cat和Dog类的用法。我们分别创建了一只猫、两只狗,并且给它们赋予了名字、年龄、性别、颜色等特性。然后我们调用了它们共同继承的Animal类的eat()、sleep()、run()方法,以及各自添加的特性方法。

总之,使用C++实现动物类的继承,可以让我们更好地组织我们的代码,使其更容易维护和扩展。如果您对此感兴趣,那么赶快试着编写一些派生类吧!

  
  

评论区

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