6-4 派生类使用基类的成员函数
6-4 派生类使用基类的成员函数
分数 5
全屏浏览题目
切换布局
作者 李廷元
单位 中国民用航空飞行学院
按要求完成下面的程序:
1、定义一个Animal
类,成员包括:
(1)整数类型的私有数据成员m_nWeightBase
,表示Animal
的体重;
(2)整数类型的保护数据成员m_nAgeBase
,表示Animal
的年龄;
(3)公有函数成员set_weight
,用指定形参初始化数据成员nWeightBase
;
(4)公有成员函数get_weight
,返回数据成员nWeightBase
的值;
(5)公有函数成员set_age
,用指定形参初始化数据成员m_nAgeBase
;
2、定义一个Cat
类,公有继承自Animal
类,其成员包括:
(1)string类型的私有数据成员m_strName
;
(2)带参数的构造函数,用指定形参对私有数据成员进行初始化;
(3)公有的成员函数print_age
,功能是首先输出成员m_strName
的值,然后输出“, age = ”,接着输出基类的数据成员m_nAgeBase
的值。具体输出格式参见main函数和样例输出。
类和函数接口定义:
参见题目描述。
裁判测试程序样例:
#include <iostream> #include <string> using namespace std; /* 请在这里填写答案 */ int main() { Cat cat("Persian"); //定义派生类对象cat cat.set_age(5); //派生类对象调用从基类继承的公有成员函数 cat.set_weight(6); //派生类对象调用从基类继承的公有成员函数 cat.print_age(); //派生类对象调用自己的公有函数 cout << "cat weight = " << cat.get_weight() << endl; return 0; }
输入样例:
本题无输入。
输出样例:
Persian, age = 5
cat weight = 6
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
class Animal
{
public:Animal() {};
private:int m_nWeightBase;
protected:int m_nAgeBase;
public:void set_weight(int a){this->m_nWeightBase=a;}int get_weight(){return m_nWeightBase;}void set_age(int a){this->m_nAgeBase = a;}int get_age(){return m_nAgeBase;}
};
class Cat :public Animal
{
private:string m_strName;int age;
public:Cat() { };Cat(string name){this->m_strName = name;}void print_age(){cout << m_strName << ", age = " << m_nAgeBase << endl;}
};
6-4 派生类使用基类的成员函数相关推荐
- 派生类到基类的转换 和基类到派生类的转换
一. 基类与派生类的转换 3种继承方式(公用.保护.私有继承)中,公用派生类才是基类真正的子类型,它完整地继承了基类的功能. 不同类型数据之间在一定条件下可以进行类型的转换.基类与派生 ...
- 【C++ Priemr | 15】派生类向基类转换的可访问性
1. 只有当D公有继承B时,用户代码才能使用派生类向基类的转换:如果D私有继承B的方式是受保护的或者私有的,则用户代码不能使用该转换. class A {}: class B : public A { ...
- 派生类对基类成员的访问控制之公有继承
公有继承 前面说过,派生类从基类继承时有三个步骤, 第一个步骤是吸收基类成员,吸收了基类中除构造函数和析构函数之外的所有数据成员和函数成员, 第二个步骤就是修改基类成员,包括修改对基类成员的访问属性和 ...
- 派生类从基类继承的过程
派生类从基类继承的过程 派生类从基类继承的过程可以分为三个步骤:吸收基类成员.修改基类成员和添加新成员. 吸收基类成员就是代码复用的过程,修改基类成员和添加新成员实现的是对原有代码的扩展,而代码的复用 ...
- C++学习记录:派生类向基类转换及其可访问性
知乎有很多博主学不会了一言不合就抄书,我觉得这对学习计算机科学是一样的. 这里说一个自己或许也有许多人都会也不太注意的点,派生类向基类转换及其可访问性,抄自<C++ Primer>. 派生 ...
- 从零开始学C++之继承(二):继承与构造函数、派生类到基类的转换
一.不能自动继承的成员函数 构造函数(包括拷贝构造函数) 析构函数 =运算符 二.继承与构造函数 基类的构造函数不被继承,派生类中需要声明自己的构造函数. 声明构造函数时,只需要对本类中新增成员进行初 ...
- 不同派生方式下基类成员在派生类中的可访问范围属性
不同派生方式下基类成员在派生类中的可访问范围属性 派生方式 派生方式 派生方式 基类成员 公有派生 私有派生 保护派生 私有成员 不可访问 不可访问 不可访问 保护成员 保护 私有 保护 公有成员 公 ...
- C++ 类继承:构造函数与析构函数调用顺序,派生类和基类之间的特殊关系,公有继承及其他
文章目录 一.派生类构造函数与基类构造函数 二.创建与销毁派生类对象时,构造函数和析构函数的调用 三.派生类和基类之间的特殊关系 四.公有继承 (一).何为公有继承 (二).多态公有继承 (三).虚函 ...
- java永久冻结_Java如何解决脆弱基类(基类被冻结)问题
概述 大多数好的设计者象躲避瘟疫一样来避免使用实现继承(extends 关系).实际上80%的代码应该完全用interfaces写,而不是通过extends."JAVA设计模式"一 ...
最新文章
- 服务器客户端回射程序-自己设计包的结构
- ASM文件拷贝到本地
- 【 Grey Hack 】反向Shell
- 华为c语言中static的作用,C语言编程规范(华为、林锐、MISRAC).pdf
- 关于jsp表单提交中action所指向Servlet路径问题的总结
- 服装业成本核算方法大全
- 计算机专业装win几,老电脑装win7还是win10_老电脑装win10还是win7
- 沃兹结束苹果生涯 | 历史上的今天
- 南京邮电大学-数据结构-慕课MOOC-第四章作业
- 云原生小课堂|Envoy请求流程源码解析(三):请求解析
- DAMO-YOLO全流程代码解读
- D2x神符之语中英文对照图文豪华版
- Mac上一键PNG转JPG,图片转jpg并保存到桌面,右键服务转换
- 科学家用iPS细胞研究阿尔兹海默氏病最新进展
- 划时代变革丨山石网科重磅发布A系列智能下一代防火墙 重新定义边界安全
- kubectl cp命令
- MFC 画笔功能实现
- java虚拟机学习笔记2
- c语言编译平均数编码,如何编写求俩数平均数的代码
- 基于JavaWeb的校友录同学录管理系统