21xrx.com
2024-12-22 22:04:14 Sunday
登录
文章检索 我的文章 写文章
C++编写的动物类源代码
2023-06-23 08:55:22 深夜i     --     --
C++ 编写 动物类 源代码 面向对象编程

动物类是一种基础类,它可以作为其它具体动物类的父类。在C++中,我们可以使用类和对象来描述和操作动物类。下面是一个基于C++编写的动物类的源代码:


class Animal {

private:

  std::string name_;

  int age_;

public:

  Animal(std::string name, int age) : name_(name), age_(age) {}

  void setName(std::string name) name_ = name;

  std::string getName() const return name_;

  void setAge(int age) age_ = age;

  int getAge() const return age_;

  virtual void speak() const = 0; // 纯虚函数,用于描述动物的叫声

};

在上述代码中,我们定义了一个名为“Animal”的类,它有两个私有成员变量:名字和年龄。我们利用类的构造函数来初始化这些变量,并使用公有的setter和getter函数来进行读写操作。此外,我们还使用了一个虚函数“speak”来描述动物的叫声,由于它是一个纯虚函数,因此它只能在其它的具体动物类中进行实现。

接下来,我们可以基于Animal类定义一些具体的子类,如:


class Cat : public Animal {

public:

  Cat(std::string name, int age) : Animal(name, age) {}

  void speak() const override std::cout << "喵喵喵" << std::endl;

};

class Dog : public Animal {

public:

  Dog(std::string name, int age) : Animal(name, age) {}

  void speak() const override std::cout << "汪汪汪" << std::endl;

};

这些子类继承了Animal类的方法和属性,并实现了自己的speak函数,用于描述不同动物的叫声。

最后,我们可以使用这些类来创建不同的对象:


Cat alice("Alice", 1);

Dog bob("Bob", 2);

std::cout << alice.getName() << "说:";

alice.speak(); // 输出 "喵喵喵"

std::cout << bob.getName() << "说:";

bob.speak(); // 输出 "汪汪汪"

这里我们分别创建了一个名为“Alice”的猫和一个名为“Bob”的狗,并使用它们的speak函数描述它们的叫声。这说明了利用面向对象的方法进行编程的好处,既可以描述和操作不同类型的数据,也可以通过继承和多态来实现代码的复用和扩展。

  
  

评论区

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