面向对象实验四类的继承
admin
2024-01-29 03:34:17
0

一、实验目的 

通过以一个类为基类来为其建立派生类的方法,掌握面向对象程序设计中类的继承性、层次性等特性以及派生类中给基类构造函数传递参数的方法,掌握基类中不同访问权限的成员在派生类中的访问权限。 继承是C++语言的一种重要机制,该机制自动地为一个类提供来自另一个类的操作和数据结构,这使得程序员只需在新类中定义已有类中没有的成分来建立类。理解继承是理解面向对象程序设计所有方面的关键。 能利用现有的类建立新类,能理解继承如何提高软件的可重用性,理解多态性对于继承的意义,掌握多态的工作原理。 派生类(子类)继承它父类的属性和操作,在继承中,基类的 private 对所有的外界都屏蔽(包括自己的派生类),基类的protected控制符对应用程序是屏蔽的,但对其派生类是可访问的。

存取方式与继承关系

存取方式

public

protected

private

public

public

protected

private

protected

protected

protected

private

private

private

private

private

二、实验内容 

  使用 Visual C++ 6.0 建立一个类A,然后派生出两个类B和C。

三、实验要求 

   1、要求类A的公有段、保护段、私有段分别都有对应的数据和成员函数;

   2、分别以public和private的方式派生出两个类B、C;

   3、通过B和C的构造函数传递参数给基类A的构造函数,验证它们之间的调用关系和调用顺序;

   4、在这两个派生类中实现对基类成员的访问,在基类的基础上增加新的成员函数;

   5、编制主程序验证派生类的正确性。

四、实验课后要求 

 1、整理课内上机的结果、体会;

2、完成实验报告。 

实验代码:

//shuiguo.h

#ifndef SHUIGUO_H_

#define SHUIGUO_H_

class shuiguo//基类,水果

{

private:

int sum;//总数

int kind;//种类数量

public:

shuiguo():sum(0),kind(0){}

shuiguo(int s, int k) :sum(s), kind(k){}

virtual void display();

void change(int,int);

};

class banana:public shuiguo//香蕉,具有has-a关系的公有继承

{

private:

float cal;//卡路里

public:

banana() :shuiguo(), cal(0.0){}

banana(int s, int k, float c) :shuiguo(s, k), cal(c){}

virtual void display();

};

class maochong :private shuiguo//毛毛虫,具有is-a关系的私有继承

{

private:

int number;//毛虫数量

public:

maochong() :shuiguo(), number(0){}

maochong(int s, int k, int n) :shuiguo(s, k), number(n){}

virtual void display();

};

#endif

//shuiguo.cpp

#include

#include"shuiguo.h"

using namespace std;

void shuiguo::display()

{

cout << "总数: " << sum << "   " << "种类:  " << kind << endl;

}

void shuiguo::change(int a,int b)

{

sum = a;

kind = b;

}

void banana::display()

{

shuiguo::display();

cout << "卡路里:  " << cal << endl;

}

void maochong::display()

{

shuiguo::display();

cout << "总数;  " << number << endl;

}

//user.cpp

#include"shuiguo.h"

#include

using namespace std;

int main()

{

//一般对象实现

shuiguo a;

a.display();

a.change(100,10);

a.display();

shuiguo b(200, 20);

b.display();

banana c;

c.display();

c.change(100, 10);

c.display();

banana d(200, 20, 3);

d.display();

maochong e;

e.display();

maochong f(100, 10, 100);

f.display();

//指针对象实现(简化版)

shuiguo *g;

g= new shuiguo[1];

g[0]=shuiguo(100,10);

g[0].display();

banana *l;

l = new banana[1];

l[0] = banana(200, 20, 3);

l[0].display();

maochong *k;

k = new maochong[1];

k[0] = maochong(100, 10, 100);

k[0].display();

return 0;

}

相关内容

热门资讯

直击老百姓股东大会,谢子龙:面... 【大河财立方 记者 王鑫 长沙报道】6月18日下午,老百姓大药房连锁股份有限公司(以下简称“老百姓”...
外资集体唱多,岂是短期利好这么... 放下一周的交易疲惫,静下心,理性总结行情与问题。本篇为大家准备了4条要闻,覆盖当前市场核心动向,帮大...
原创 “... 老铁们,今天这盘面,不用看K线,看评论区就够了。 创业板、科创一举冲高,刷新阶段强势区间;上证这边却...
2026中国快消自有品牌价值进... 今天分享的是:2026中国快消自有品牌价值进阶之路研究报告-尼尔森IQ 报告共计:12页 这份尼尔森...
原创 秦... 兵马俑的全称应为秦始皇兵马俑,这一举世震惊的考古奇迹首次被发现于1974年,自那以后,它便成为中华文...
原创 反... 大家好,我是小毋。 一场看似针对性极强的产业链博弈,在今年的G7峰会上正式摆上台面。 一众西方发达国...
局势突变!刚刚,全线跳水!股市... 美伊谈判的变数搅动金融市场。 今日(6月19日)午间,日韩股市全线跳水,韩国KOSPI指数一度跌超2...
国际金价失守4200美元关口 图片来源:视觉中国 6月19日,国际黄金市场持续走弱,现货黄金价格盘中加速跳水,一举跌破4200美元...
装载8000万桶原油的超级油轮... 6月19日,财闻海外资讯消息,载有近8000万桶石油的超级油轮正停泊在波斯湾,一旦交易商和船东发出指...
原创 刚... 法国总统马克龙最近的状态,用一句哭笑不得来形容再贴切不过。原本他一门心思准备在对华贸易议题上做文章,...
惠誉:将宁德时代的发行人主体评... 6月18日,惠誉国际评级有限公司(下称“惠誉”)上调宁德时代(300750.SZ/03750.HK)...
临商银行“临商红”青年志愿服务... 为大力弘扬践行沂蒙精神,临商银行联合市委金融工委、市委市直机关工委、共青团临沂市委共同打造了“临商红...
SpaceX 上市:SPCX ... EBC Financial Group 自开盘起即向全球交易者提供双向交易通道,参与这一史上最大规模...
甘肃电气集团长开公司荣获202... 近日,在2026年度中国中压电器行业权威评选活动中,甘肃电气集团长开公司荣获中国中压电器市场“卓越贡...
是80%的工位面向海景,马岩松... 腾讯总部园区 摄影:张超 深圳大铲湾,腾讯总部园区“企鹅岛”于5月底首次面向公众开放。 三座由马岩松...
日本经济专家:加息难以扭转日元... 日本央行近日宣布将政策利率自0.75%上调至1.0%,为31年来最高水平。日本经济专家认为,目前日元...
黄金跌2%失守4130美元,白... 6月19日午间,黄金白银仍未止跌。截至13时,现货黄金跌2%,报4124.57美元/盎司,失守413...
原创 中... 2026年6月这个节点意味格外不同。4月伊朗与以色列那场脆弱的停火刚撑了不到两个月,6月8日两边又对...
Manus回购方案浮出水面:中... 文 | 强调Next 据外媒The Information6月18日报道,Manus的早期中国投资...
2026黄金回收避坑,郑州72... 来源:黄冈新闻网 一、郑州黄金回收市场现状与高价引流投诉占比 据郑州市 12315 消费维权平台 2...