首页 > 其他分享 >私有继承派生类使用基类的成员函数

私有继承派生类使用基类的成员函数

时间:2023-04-27 23:24:09浏览次数:41  
标签:set 函数 weight 私有 成员 基类 Animal 派生类 age

按要求完成下面的程序:

1、定义一个Animal类,成员包括:

(1)整数类型的私有数据成员m_nWeightBase,表示Animal的体重;

(2)整数类型的保护数据成员m_nAgeBase,表示Animal的年龄;

(3)公有函数成员set_weight,用指定形参初始化数据成员m_nWeightBase

(4)公有成员函数get_weight,返回数据成员m_nWeightBase的值;

(5)公有函数成员set_age,用指定形参初始化数据成员m_nAgeBase

2、定义一个Cat类,私有继承自Animal类,其成员包括:

(1)string类型的私有数据成员m_strName;

(2)带参数的构造函数,用指定形参对私有数据成员进行初始化

(3)公有的成员函数set_print_age,功能是首先调用基类的成员函数set_age设置数据成员m_nAgeBase的值为5,接着输出成员m_strName的值,然后输出“, age = ”,最后输出基类的数据成员m_nAgeBase的值。具体输出格式参见main函数和样例输出。

(4)公有的成员函数set_print_weight,功能是首先调用基类的成员函数set_weight设置数据成员nWeightBase的值为6,接着输出成员m_strName的值,然后输出“, weight = ”,最后调用基类的成员函数get_weight输出基类的数据成员m_nAgeBase的值。具体输出格式参见main函数和样例输出。

类和函数接口定义:

 
参见题目描述。
 

裁判测试程序样例:

 
#include <iostream>
#include <string>
using namespace std;

/* 请在这里填写答案 */

int main()
{
    Cat cat("Persian");     //定义派生类对象cat
    cat.set_print_age();
    cat.set_print_weight(); //派生类对象调用自己的公有函数
    return 0;
}

 

输入样例:

本题无输入。

输出样例:

Persian, age = 5
Persian, weight = 6
 1 class Animal{
 2   private:
 3     int m_nWeightBase;  
 4   protected:
 5     int m_nAgeBase;
 6    public:
 7   void set_weight(int a){
 8 m_nWeightBase=a;
 9     }
10   int get_weight(){
11        return m_nWeightBase ;
12     }
13 void set_age(int b)
14 {
15     m_nAgeBase=b; 
16 }
17 };
18 class Cat : private Animal{
19     private:
20     string m_strName;
21    public:   
22     using Animal::set_age;
23     using Animal::set_weight;
24     Cat(string c):m_strName(c){};
25     void set_print_age(){
26         set_age(5);
27         cout<<m_strName<<", age = "<<Animal::m_nAgeBase<<endl;
28         
29     }
30   void set_print_weight(){
31       set_weight(6);
32         cout<<m_strName<<", weight = "<<get_weight()<<endl;
33     }
34 };

 

标签:set,函数,weight,私有,成员,基类,Animal,派生类,age
From: https://www.cnblogs.com/liubingyu/p/17360510.html

相关文章

  • containerd配置harbor私有仓库
    containerd不能像docker一样dockerloginharbor.example.com登录到镜像仓库,无法从harbor拉取到镜像,需要在每个node节点进行如下配置:可以通过更改containerd的config.toml文件添加仓库地址, /etc/containerd/config.toml,如果此文件不存在,可以通过命令生成配置文件containerdco......
  • vue前端使用nexus配置npm私有仓库
    当我们运行前端项目的时候,常常在解决依赖的时候会加上一个参数npminstall--registry=https://registry.npm.taobao.org将源指定为淘宝的源,以期让速度加快起来,事实上这种的确能够让速度变快,但是长久来看,如果想真正的快速敏捷开发部署,搭建企业内部的私服,则会让速度更上一个台阶。......
  • docker搭建本地私有仓库详细步骤
    1、首先下载registry镜像2、在daemon.json文件中添加私有镜像仓库的地址并重启3、创建registry容器并开放端口4、给镜像打标签后上传到私有仓库5、获取私有仓库列表查看是否上传成功6、验证:从私有仓库下载镜像 1、首先下载registry镜像dockerpullregistry......
  • 构造函数私有化或保护化
    构造函数私有化或保护化摘自:https://blog.csdn.net/caoyangxiaoyao/article/details/81184786构造函数私有化/保护化可以将构造函数设置为私有函数,但是这样做就无法从外部直接调用构造函数,因此就无法直接构造这个类的对象。1.如果你不想让外面的用户直接构造一个类(类A)的对象,而是......
  • 私有VLAN(Private VLAN)
        私有VLAN(PrivateVLAN),也称为专用VLAN,是一种电脑网络技术,它包含被限制的交换机端口,使得它们只能与给定的“上行链路”(uplink)通信。受限(restricted)端口称为“私有端口”。每个专用VLAN通常包含许多私有端口和单个上行链路。上行链路通常是连接到路由器、防火墙、服务器、......
  • Tailscale 基础教程:部署私有 DERP 中继服务器(转)
    Sealos 在云桌面中管理Kubernetes集群生命周期,运行分布式应用程序 走,看看去!上篇文章介绍了如何使用 Headscale 替代Tailscale官方的控制服务器,并接入各个平台的客户端。本文将会介绍如何让Tailscale使用自定义的DERPServers。可能很多人都不知道 DERP 是个啥玩意......
  • 简单轻量级的私有云管理平台
    基本需求1.物理机管理:创建物理机控制物理机修改物理机删除物理机物理机列表2.存储管理增加存储查看存储编辑存储删除存储存储列表备份任务管理增加磁盘备份任务查看磁盘备份任务编辑磁盘备份任务删除磁盘备份任务3.虚拟网络管理增加虚拟接口查看虚拟接口编辑虚拟接口删除虚拟......
  • 搭建 gitlab 私有仓库
    搭建gitlab私有仓库1.拉取镜像dockerpullgitlab/gitlab-ce2.启动容器dockerrun-itd\-p9980:80\-p9922:22\-v/home/gitlab/etc:/etc/gitlab\-v/home/gitlab/log:/var/log/gitlab\-v/home/gitlab/opt:/var/opt/gitlab\--restartalways\--pr......
  • 如何创建私有docker镜像仓库
    要创建一个私有的Docker镜像仓库,可以使用Docker官方提供的开源工具DockerRegistry或第三方工具如Harbor等。下面是使用DockerRegistry创建私有Docker镜像仓库的步骤:安装DockerRegistry可以通过在DockerHub上下载DockerRegistry镜像来安装DockerRegistry。在Linux系统中......
  • 企业对NAS私有云存储有什么样的需求,NAS网络存储又有哪些优势与功能呢?
    在过去十年中,云计算从公有云起步,逐渐发展出私有云/专有云和混合云。所以在私有云等云技术不断发展的情况下,企业对NAS私有云存储有什么样的需求呢?NAS网络存储又有哪些优势与功能呢?NAS网络存储有以下5大优势:(1)易于扩展:根据服务器使用人数和空间及时扩展存储空间,不会影响前端用户的......