面向对象实验四类的继承
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;

}

相关内容

热门资讯

刘世锦:建议实施进出口基本平衡... 1月17日,中国环境与发展国际合作委员会中方首席顾问、国务院发展研究中心原副主任刘世锦在第二十七届北...
阳光电源逐光出海,锚定全球储能... 全球能源转型浪潮澎湃,储能作为构建新型电力系统的关键支撑,其战略地位日益凸显。在这场关乎未来能源格局...
封关整一个月,海南卖爆了 1 2025年12月18日,海南自贸港全岛正式封关。 今天是2026年1月19日,海南封关整整一个月...
容积率下调,体量23万㎡!福州... 海西房产网(微信公众号:fjhxfcw)消息:为传承弘扬“中国福州国际招商月”思想精髓,福州市招商办...
比格比萨赴港IPO,创始人赵志... 瑞财经 严明会 1月16日,比格餐饮国际控股有限公司(以下简称:比格比萨)递交招股书,冲击港股IPO...
罗永浩被禁言后现身颁奖典礼,领... 1月19日,罗永浩于谦拒领终身成就奖的相关话题登上热搜。 1月18日,在B站年度百大UP主颁奖典礼...
原创 G... 如果说欧盟是个戏班子,每次开会就像上演一场戏,那G7就更像是个马戏团,所有的成员都是戏精上身,开会时...
原创 赚... 最近,关于俄罗斯暂停对中国电力出口的消息引发了广泛的讨论。西方媒体迅速抓住这个机会,宣称中俄合作出现...
原创 指... 现阶段的市场已经进入到“降温”的调整时期,针对A股“易跌难涨”的特性,这个位置千万不要“空手接白刃”...
掌上工美APP白银铂金投资骗局...   别让“免费福利”蒙蔽双眼!普通消费者一时好奇下载了名为“掌上工美”App,被其“新人专享”“充值...
机构积极抢筹,机器人赛道迎布局... 截至10:03,国证机器人产业指数(980022)涨0.68%,成分股中,南网科技涨7.2%、奥比中...
原创 珠... 中国财富网讯 作为承载审美文化与消费升级需求的核心赛道,珠宝钟表行业既肩负着传承工艺匠心的使命,也面...
国家统计局:过去一年经济表现可... 【大河财立方消息】1月19日,国新办就2025年国民经济运行情况举行新闻发布会。 国家统计局局长康义...
原创 突... 如果有一天,特斯拉从你脑海中“电动汽车巨头”的印象里彻底剥离,变成一家 硕大无朋的“机器人制造厂”,...
原创 G... 真是大开眼界,西方这帮人的操作,简直到了精神分裂的程度。左手一边是G7的财长们围着桌子开会,铁了心要...
华为哈勃入股具身智能公司流形空... 每经AI快讯,天眼查工商信息显示,近日,北京流形空间科技有限公司发生工商变更,新增华为旗下深圳哈勃科...
消费还扛不起大旗 来源:虎嗅APP 出品 | 妙投APP 作者 | 段明珠 牛市走了一半,消费股却像被遗忘了。202...
多措并举破解部分农村“取暖贵”... 张贤达绘(人民视觉) 近来,我国北方一些地区农村“煤改气”后,有读者网友反映,用气价格高,导致出现有...