[C++/PTA] 狗的继承

简介: [C++/PTA] 狗的继承

题目要求

完成两个类,一个类Animal,表示动物类,有一个成员表示年龄。一个类Dog,继承自Animal,有一个新的数据成员表示颜色,合理设计这两个类,使得测试程序可以运行并得到正确的结果。

函数接口定义

按照要求实现类

裁判测试程序样例:

/* 请在这里填写答案 */
int main(){
    Animal ani(5);
    cout<<"age of ani:"<<ani.getAge()<<endl;
    Dog dog(5,"black");
    cout<<"infor of dog:"<<endl;
    dog.showInfor();
}

输入样例:

输出样例:

age of ani:5

infor of dog:

age:5

color:black

解题思路

定义两个构造函数,一个默认构造函数和一个带参数的构造函数,以及一个获取年龄的成员函数getAge。

在Dog类中,定义了一个构造函数,用于设置年龄和颜色,并新增加了一个成员函数showInfor,用于输出狗的信息。

代码

#include <iostream>
using namespace std;
class Animal
{
public:
    Animal() {} // 默认构造函数,不进行任何操作
    Animal(int age) { this->age = age; } // 带参数的构造函数,用于设置年龄
    int getAge() { return age; } // 获取年龄的函数
protected:
    int age; // 年龄作为Animal类的数据成员
};
class Dog :public Animal // 继承自Animal类
{
public:
    Dog(int a, string color) : Animal(a) { this->color = color; } // 构造函数,设置年龄和颜色
    void showInfor() // 输出狗的信息
    {
        cout << "age:" << age << endl; // 可以直接访问Animal类中的年龄数据成员
        cout << "color:" << color << endl; // 也可以访问Dog类中新增加的颜色数据成员
    }
private:
    string color; // 新增加的颜色数据成员
};

总结

该题考察构造函数相关知识,读者可躬身实践。

我是秋说,我们下次见。

目录
相关文章
|
27天前
|
安全 程序员 编译器
【C++篇】继承之韵:解构编程奥义,领略面向对象的至高法则
【C++篇】继承之韵:解构编程奥义,领略面向对象的至高法则
74 11
|
25天前
|
C++
C++番外篇——对于继承中子类与父类对象同时定义其析构顺序的探究
C++番外篇——对于继承中子类与父类对象同时定义其析构顺序的探究
51 1
|
25天前
|
C++
C++番外篇——虚拟继承解决数据冗余和二义性的原理
C++番外篇——虚拟继承解决数据冗余和二义性的原理
33 1
|
19天前
|
安全 编译器 程序员
C++的忠实粉丝-继承的热情(1)
C++的忠实粉丝-继承的热情(1)
13 0
|
25天前
|
编译器 C++
C++入门11——详解C++继承(菱形继承与虚拟继承)-2
C++入门11——详解C++继承(菱形继承与虚拟继承)-2
26 0
|
25天前
|
程序员 C++
C++入门11——详解C++继承(菱形继承与虚拟继承)-1
C++入门11——详解C++继承(菱形继承与虚拟继承)-1
31 0
|
2月前
|
C++
C++(二十)继承
本文介绍了C++中的继承特性,包括公有、保护和私有继承,并解释了虚继承的作用。通过示例展示了派生类如何从基类继承属性和方法,并保持自身的独特性。此外,还详细说明了派生类构造函数的语法格式及构造顺序,提供了具体的代码示例帮助理解。
|
2月前
|
C++
c++继承层次结构实践
这篇文章通过多个示例代码,讲解了C++中继承层次结构的实践应用,包括多态、抽象类引用、基类调用派生类函数,以及基类指针引用派生类对象的情况,并提供了相关的参考链接。
|
3月前
|
安全 Java 编译器
|
4月前
|
Java C++ 运维
开发与运维函数问题之C++中有哪些继承方式如何解决
开发与运维函数问题之C++中有哪些继承方式如何解决
26 0