C++ 类的抽象初练
/*
某商店经销一种货物,货物的购进和卖出以箱为单位,各箱的重量不一样,
因此商店需要目前库存的总重量。
现在用c++模拟商店货物购进和卖出的情况 */ #include<iostream>
using namespace std; //货物类
class Goods{
public:
Goods(int w=){
this->weight = w;
}
int GetW(){
return weight;
}
Goods *next;
private:
//重量
int weight;
}; //商店类
class Shop{
public:
Shop(int s=){
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 = ;
}
//卖出
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 = ;
while (indexover){
int num = ;
int w = ;
cout << "请输入操作:" << endl;
cout << "1购进货物" << endl;
cout << "2卖出货物" << endl;
cout << "3查看现有货物重量" << endl;
cout << "按任意键退出" << endl;
cin >> num;
switch (num)
{
case :
cout << "请输入货物的重量" << endl;
//备注:在c++中不可以在case语句里定义任意变量,如果非要定义,请外面套上大括号{}
//int ss = 0;
//报错 : error C2360: “ss”的初始化操作由“case”标签跳过
{
cin >> w;
Goods * g1 = new Goods(w);
sp->Purchase(g1);
}
break;
case :
{
sp->SellOut();
}
break;
case :
cout << "现有货物的重量是" << sp->GetWeight() << endl;
break;
default:
indexover = ;
break;
}
}
if (sp!=NULL)
{
delete sp;
}
}
void main(){
protectA();
system("pause");
}
C++ 类的抽象初练的更多相关文章
- 抽象鸡类 abstract(抽象) base(基础) class(类型)
# --> ''' class interface 接口: 建立关联的桥梁, 方便管理代码 (python中没有接口语法) 接口类: 用来定义功能的类 为继承它的子类提供功能 该类的功能法方法一 ...
- 创建一个抽象的员工类, 抽象开发累继承员工类,JavaEE ,和安卓继承开发类在测试类中进行测试
/* 1 定义一个员工类 所有的子类都抽取(抽象类) Employee 属性:姓名 工号(生成get set ) 方法:工作 抽象 2 定义一个研 ...
- python(七):元类与抽象基类
一.实例创建 在创建实例时,调用__new__方法和__init__方法,这两个方法在没有定义时,是自动调用了object来实现的.python3默认创建的类是继承了object. class A(o ...
- Python 中的类与对象 初认识
一:类的声明 1类的关键字: 从第一天第一个项目起我们就接触过关键字,比如False True is not None return for while elif else import等等,这是语言 ...
- C# 类 (7) - 抽象 Abstract
Abstract 抽象类,关键字Abstract ,最典型的应用就是在 继承机制里 作为base类,抽象类是不能被实例化的(前面说的static 类也不能被实例化)它必须作为 基类,被别人继承,然后必 ...
- UE4开发神秘海域类游戏原型 初阶(二):动画资源的整合
前一篇已经确定神海类游戏原型的目标,首先要做的就是3C's(Character, Controls, Camera)的开发. UE4的3C's的程序部分开发主要也就是基于他的GamePlay Fr ...
- 类,抽象基类,接口类三者间的区别与联系(C++)
结构上的区别: 普通类:数据+方法+实现 抽象类:数据+方法(一定包含虚方法n>=1)+部分方法的实现 接口类:方法(纯虚方法) http://www.cnblogs.com/Tris-wu/p ...
- 三分初练QAQ
求凸函数的极值的一般方法是三分 三分的思想大概是这样的: 例如我们要求下凸函数的极值 在区间[L,R]上, 我们定义m1为区间的第一个三等分点 定义m2为区间的第二个三等分点 设函数值为F(x) 则若 ...
- 操作数据库的时候,使用自带的DbProviderFactory类 (涉及抽象工厂和工厂方法)
微软自带的DbProviderFactory https://msdn.microsoft.com/en-us/library/system.data.common.dbproviderfactory ...
随机推荐
- android 开源组件合集-UI篇(2013-11-07更新)
其实也算不上合集,只是将我经常用到的部分整理一下,如果您有好东西,也可以留言补充 1.actionbar http://actionbarsherlock.com/ https://github.co ...
- SQL语言 之 事务控制
一.概述 事务是一些数据库操作的集合,这些操作由一组相关的SQL语句组成(只能是 DML 语句),它们是一个有机的整体,要么全部成功执行,要么全部不执行.事务时数据库并发控制和恢复技术的基本单位. 事 ...
- 关于索引的sql语句优化之降龙十八掌
1 前言 客服业务受到SQL语句的影响非常大,在规模比较大的局点,往往因为一个小的SQL语句不够优化,导致数据库性能急剧下降,小型机idle所剩无几,应用服务器断连.超时,严重影响业务的正 ...
- ES6 class 基本使用
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- MVC4怎样在cshtml的引号内添加变量?
@{;} @foreach (var item in Model) { i++; <tr> <td style="text-align:center">@i ...
- 名词解释:alpha版、beta版、rc版的意思(转)
很多软件在正式发布前都会发布一些预览版或者测试版,一般都叫“beta版”或者 “rc版”,特别是开源软件,甚至有“alpha版”,下面来解释一下各个版本的意思. alpha版:内部测试版.α是希腊字母 ...
- DBCP( 二) DataBase Connection Pool 的使用
使用DBCP必须用的三个包: commons-dbcp-1.2.1.jar, commons-pool-1.2.jar, commons-collections-3.1.jar. 配置参数. Java ...
- KVM虚拟化学习笔记系列文章列表(转)
Kernel-based Virtual Machine KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之k ...
- postgresql一般crud存储过程参考[转]
http://blog.csdn.net/cdnight/article/details/18082255 这里是一份经过再三调试测试而成功的postgres数据库单表crud存储过程,请注意,对于多 ...
- socket 的粘包问题解决方案
粘包: 由于接受recv有最大限制,管道中有大于最大限制字节时, 第二次recv的会是之前残留的信息,这种现象叫做粘包. TCP协议是面向连接的,面向流的,当在发送数据时接受方不知道要收多少字节的数据 ...