C++ 类的抽象初练
/* 某商店经销一种货物,货物的购进和卖出以箱为单位,各箱的重量不一样, 因此商店需要目前库存的总重量。 现在用c++模拟商店货物购进和卖出的情况*/#include<iostream> using namespace std;//货物类 class Goods{ public:Goods(int w=0){this->weight = w;}int GetW(){return weight;}Goods *next; private://重量int weight; };//商店类 class Shop{ public:Shop(int s=0){this->weights = s;pHead = NULL;}~Shop(){if (pHead!=NULL){Goods *pCurrent = pHead;Goods *pNext = NULL;while (pCurrent){pNext = pCurrent->next;delete pCurrent;pCurrent = NULL;pCurrent = pNext;}}weights = 0;}//卖出void SellOut(){if (pHead==NULL){cout << "商店里已经没有货物了!" << endl;}else{//队列 先进先出Goods *pCurrent = pHead;pHead = pHead->next;delete pCurrent;}}//购进void Purchase(Goods *&pin){if (pHead==NULL){//插入第一箱货物pHead = pin;weights += pin->GetW();}else{Goods *pCurrent = pHead;while (pCurrent->next){pCurrent = pCurrent->next;}pCurrent->next = pin;weights += pin->GetW();}}//查询货物重量int GetWeight(){return weights;} private:int weights;Goods *pHead; };void protectA(){Shop *sp = new Shop();int indexover = 1;while (indexover){int num = 0;int w = 0;cout << "请输入操作:" << endl;cout << "1购进货物" << endl;cout << "2卖出货物" << endl;cout << "3查看现有货物重量" << endl;cout << "按任意键退出" << endl;cin >> num;switch (num){case 1:cout << "请输入货物的重量" << endl;//备注:在c++中不可以在case语句里定义任意变量,如果非要定义,请外面套上大括号{}//int ss = 0;//报错 : error C2360: “ss”的初始化操作由“case”标签跳过 {cin >> w;Goods * g1 = new Goods(w);sp->Purchase(g1);}break;case 2:{sp->SellOut();}break;case 3:cout << "现有货物的重量是" << sp->GetWeight() << endl;break;default:indexover = 0;break;}}if (sp!=NULL){delete sp;} } void main(){protectA();system("pause"); }
转载于:https://www.cnblogs.com/zhanggaofeng/p/5612562.html
C++ 类的抽象初练相关推荐
- 第七章节 类的抽象(抽象类)
一.抽象类 1.抽象类可以看做对类的抽象.抽象类的用途是提供一个可供多个派子生类共享的通用基类定义 2如果一个类中没有包含足够能描述具体对象的信息,那么就称其为抽象类. 3.在C#中抽象类使用&quo ...
- 浅析编程及类的本质、类的抽象
现阶段编程语言极大丰富,以编程思想大致分为面向过程和面向对象两类,前者以C语言作为代表,编程以过程为中心,符合编程人员的直观逻辑,便于理解:后者有C++.C#.Java等,编程以对象为基本程序结构单元 ...
- c#面向对象程序设计——类的抽象
7.1类的抽象: 在面向对象思想中,所有的对象都可以通过类来描述.但并不是所有的类都是用来描述对象的,如果一个类中没有包含能够描述具体对象的信息,那么就称其为抽象类. 语法: abstract cla ...
- 《初“练”阅读》学习笔记
使用书籍<初"练"阅读>(克克老师) **1. 句内逻辑:**前提是掌握硕士研究生英语一二大纲词汇,了解熟词辟义:掌握了语法和长难句,能够正确翻译或理解长难句 四抓一找 ...
- 员工类为抽象父类,包括属性:姓名、职位、基本工资、应发工资、实发工资、应缴税;
(1)通过实现接口Operation来编写窗帘类和灯类.(2)编写一个公共类,其中包含main方法和static void operate(Operation a)方法.(3)在main方法中,当用户 ...
- Java多线程模拟驾校学车——假设共有30个学员,其中20个普通学员,10个VIP学员,两类学员并行叫号练车 ,叫号要求:vip学员被叫号的概率要高,vip学习时长是普通学员的3倍数···
假设共有30个学员,其中20个普通学员,10个VIP学员,两类学员并行叫号练车 叫号要求:vip学员被叫号的概率要高,vip学习时长是普通学员的3倍数,vip学员要在普通学员之前结束练车 packag ...
- 【类、抽象与继承(练习)~python】
python 练习目录 类的练习 简单介绍-1 学生的多重身份 中西兼备的厨师 继承 练习 运行效果如下: 简单介绍-2 抽象 练习 运行效果如下: pandas 每日一练: 程序运行结果为: 31. ...
- 【java笔记】类的抽象
如果父类当中的方法不确定如何进行{}方法体实现,那么这就应该是一个抽象方法 抽象方法和抽象类的定义格式: 抽象方法:加上abstract关键字,然后去掉大括号,直接分号结束 抽象类:抽象方法所在的类, ...
- 计算机程序设计c++ 9-7:类的抽象描述举例-汽车类及圆类设计
汽车类 汽车的抽象描述 类的特征和功能也就是对象(实体)的特征和功能 汽车类的特征和功能-分析抽象汽车个体的特征和功能 特征:型号.颜色.价格.出厂日期.载客量.载重量.-- 功能:运动.鸣笛.倒车. ...
最新文章
- SQL SERVER 数据库清空语句 忽略外键 触发器 等
- android mvc mvp 区别,谈谈Android框架 MVC、MVP、MVVM的区别
- symbian 视频播放解决方案
- spark RDD创建方式:parallelize,makeRDD,textFile
- 计算机中级职称报考入口,2020年9月计算机职称考试报名流程(附入口)
- 计数器java代码_计数器的java代码
- 网页错误在线检测网站汇总
- pytorch学习的一点小窍门(1)-数据转换
- SAP中由生产版本有误导致的生产报工时提示“错误确定成本核算”问题实例
- 不忘初心,能偷懒就偷懒:C#操作Word文件
- python对英语的要求_对英文【对英文英语头条】- 对英文知识点 - 中企动力
- 不用找,你想要的廊ps后期素材素材都在这里
- 艾克姆 蓝牙nRF52832上册-学习笔记
- 《腾讯云CityBase产品白皮书》
- LP Wizard10.5破解笔记
- springboot+小程序老年人健康保障管理系统毕业设计源码302303
- 推荐一款文件文档在线预览解决方案
- 质量管理体系认证的标准
- 云服务器-裸金属介绍
- 十问NB-IoT,最专业的NB知识。
热门文章
- 反病毒引擎设计全解(二)
- UE4 + UnLua + VSCode + LuaPanda调试
- OpenGL在frag着色器中模拟点光源
- 3D数学基础:图形与游戏开发---随笔一
- 数据结构与算法 -- 链表
- Java-gt;Android并发编程引气入门篇
- Android 开源框架之 Android-async-http 源码解读
- Android系统中的进程管理:内存的回收
- JZOJ 5458. 【NOIP2017提高A组冲刺11.7】质数
- 笔记本暗屏维修多少钱_电视机维修|维修电视机多少钱?电视机黑屏