21xrx.com
2025-03-22 21:24:27 Saturday
文章检索 我的文章 写文章
"探究C++中子类继承性的简单程序实例"
2023-07-04 18:15:58 深夜i     8     0
C++ 子类继承性 程序实例 探究 简单

在C++中,子类继承性是一个重要的概念,它允许我们创建和组织类层次结构,使得代码更加具有可维护性和可扩展性。在本文中,我们将使用一个简单的程序实例来探究C++中子类继承性的实现方式和基本原理。

在这个程序实例中,我们将创建一个基类Animal和两个子类Dog和Cat。Animal类将有两个数据成员name和age,并包含两个虚函数showName和showAge,用于展示对象的名称和年龄。Dog类和Cat类都将从Animal类继承,并且它们将覆盖showName和showAge函数以便更好地显示自己的信息。

这是我们的程序示例代码:

#include <iostream>
using namespace std;
class Animal
{
  protected:
    string name;
    int age;
  public:
    Animal(string n, int a)
    
      name = n;
      age = a;
    
    virtual void showName()
    
      cout<<"My name is "<<name<<endl;
    
    virtual void showAge()
    
      cout<<"I am "<<age<<" years old"<<endl;
    
};
class Dog : public Animal
{
  public:
    Dog(string n, int a) : Animal(n, a){}
    void showName()
     my name is "<<name<<endl;
    
    void showAge()
     I am "<<age<<" years old"<<endl;
    
};
class Cat : public Animal
{
  public:
    Cat(string n, int a) : Animal(n, a){}
    void showName()
     my name is "<<name<<endl;
    
    void showAge()
    
      cout<<"I am a cat
};
int main()
{
  Animal *a = new Animal("Animal", 3);
  Dog *d = new Dog("Dog", 5);
  Cat *c = new Cat("Cat", 2);
  a->showName();
  a->showAge();
  d->showName();
  d->showAge();
  c->showName();
  c->showAge();
  delete a;
  delete d;
  delete c;
  return 0;
}

在这个程序中,Animal类是基类,Dog和Cat类是从Animal类派生出来的子类。每个类都有一个构造函数,用于初始化它们的数据成员。此外,Animal类中的showName和showAge函数是虚函数,因此它们可以在子类中重写,以便更好地显示各自的信息。

在main函数中,我们创建了一个Animal类的对象a和两个子类Dog和Cat的对象d和c。然后我们调用这些对象的showName和showAge函数,以便比较它们之间的不同。

当我们运行这个程序时,它将输出:

My name is Animal
I am 3 years old
I am a dog, my name is Dog
I am a dog, I am 5 years old
I am a cat, my name is Cat
I am a cat, I am 2 years old

从输出结果可以看出,每个对象调用了它们相应的函数来显示信息。Animal对象显示了它的名称和年龄,而Dog和Cat对象覆盖了这些函数以便更好地显示它们自己的信息。

这个简单的程序实例说明了子类继承性的一个基本原则:子类可以使用并扩展基类的属性和方法。通过这种方式,我们可以轻松地创建和组织类层次结构,并使我们的代码更加具有可维护性和可扩展性。

  
  

评论区