12.4

原创 2018年04月16日 10:41:25
//vitageport.h
#ifndef VINTAGEPORT_H
#define VINTAGEPORT_H

#include<iostream>
using namespace std;
class Port{
private:
	char* brand;
	char style[20];
	int bottles;
public:
	Port(const char* br="none",const char* st="none",int b=0);
	Port(const Port &p);
	virtual ~Port(){delete [] brand;}
	Port & operator =(const Port &p);
	Port &operator+=(int b);
	Port &operator-=(int b);
	int BottleCount()const { return bottles;}
	virtual void Show ()const ;
	friend ostream & operator<<(ostream &os,const Port &p);
};


class VintagePort : public Port
{
private:
	char* nickname;
	int year;
public:
	VintagePort();
	VintagePort(const char* br,int b,const char* nn,int y);
	VintagePort(const VintagePort &vp);
	~VintagePort(){delete[] nickname;}
	VintagePort& operator=(const VintagePort &vp);
	void Show()const;
	friend ostream &operator<<(ostream &os,const VintagePort &vp);
};

#endif
//vintageport.cpp
#include"vintageport.h"



Port::Port(const char* br,const char* st, int b)
{
	brand=new char[strlen(br)+1];
	strcpy(brand,br);
	strcpy(style,st);
	bottles = b;
}
Port::Port(const Port &p)
{
	brand=new char[strlen(p.brand)+1];
	strcpy(brand,p.brand);
	strcpy(style,p.style);
	bottles=p.bottles;
}
Port& Port::operator=(const Port &p)
{
	if(this ==&p)
		return *this;
	delete[]brand;
    brand=new char[strlen(p.brand)+1];
	strcpy(brand,p.brand);
	strcpy(style,p.style);
	bottles=p.bottles;
	return *this;
}
Port& Port::operator+=(int b)
{
	bottles +=b;
	return *this;
}
Port &Port::operator-=(int b)
{
	bottles-=b;
	return *this;
}

void Port::Show()const
{
	cout<<"brand: "<<brand<<endl;
	cout<<"Kind:  "<<style<<endl;
	cout<<"Bottles:  "<<bottles<<endl;
}
ostream & operator<<(ostream &os,const Port &p)
{
	os<<p.brand<<","<<p.style<<","<<p.bottles;
	return os;
}



VintagePort::VintagePort():Port()
{
	nickname= new char[3];
	nickname[0]='\0';
	year=0;
}
VintagePort::VintagePort(const char *br, int b,const char* nm, int y):Port(br,"vintage",b)
{
	nickname=new char[strlen(nm)+1];
	strcpy(nickname,nm);
	year= y;
}
VintagePort::VintagePort(const VintagePort &vp):Port(vp)
{
	nickname=new char[strlen(vp.nickname)+1];
	strcpy(nickname,vp.nickname);
	year= vp.year;
}
VintagePort& VintagePort::operator=(const VintagePort &vp)
{
	if(this ==&vp)
		return *this;
	Port::operator=(vp);
	delete[] nickname;
	nickname=new char[strlen(vp.nickname)+1];
	strcpy(nickname,vp.nickname);
	year= vp.year;
	return *this;
}
void VintagePort::Show()const
{
	Port::Show();
	cout<<"nickname: "<<nickname<<endl;
	cout<<"year:  "<<year<<endl;
}
ostream & operator <<(ostream &os,const VintagePort &vp)
{
	os<<(Port &)vp<<",";
	os<<vp.nickname<<","<<vp.year;
	return os;
}

//main.cpp
#include"vintageport.h"



int main()
{
	Port p0("Gallo","tawny",20);
	p0.Show();
	p0+=2;
	p0-=4;
	cout<<p0<<endl;
	Port *p1;
	p1=new VintagePort("Gallo",20,"Noble",20);
	*p1+=8;
	p1->Show();
	cout<<*p1<<endl;
	p1=&p0;
	p1->Show();
	cout<<*p1<<endl;
	VintagePort p2("Gallo",20,"Noble",20);
	p2+=6;
	p2.Show();
	cout<<p2;
	system("pause");

	return 0;
	}

12-4-2017周总结

本周学习了泛型,Map集合还有集合工具类。 1.泛型将运行时期的问题转移到了编译时期,避免了强制类型转换;泛型可以用在接口上,类上还有方法上。 1.2 定义在接口上的泛型。interface In...
  • qq_39879831
  • qq_39879831
  • 2017-12-04 12:24:23
  • 36

SQLyog 12.4 旗舰版 中文版 注册版

  • 2017年02月05日 15:47
  • 11.3MB
  • 下载

算法导论12.4随机构建二叉搜索树 练习总结

12.4-1 证明等式(12.3)。 ANSWER: 证明:                                                                    ...
  • chan15
  • chan15
  • 2015-10-08 15:09:58
  • 1172

ubuntu 12.4 语言 英文 设 中文

ubuntu 安装之后 默认的语言是英文, 要设置成中文的话 System Settings------>Language Support------->install/remove language...
  • technician_
  • technician_
  • 2014-03-04 11:07:35
  • 395

c语言学习12-4

1.在屏幕上输出由*组成的菱形 2.求出所有三位数的水仙花数并输出 3.求Sn=a+aa+aaa+aaaa+aaaaa 前五项之和,a为一数字 4.编写程序,从标准输入读取C源代码,并验证所有...
  • Ego_Bai
  • Ego_Bai
  • 2016-12-29 17:25:34
  • 341

sqlylog_64_12.09

  • 2017年06月10日 10:28
  • 7.53MB
  • 下载

2017年12月4日 第三十二天次总结

之前耽误好久了,赶紧回归写总结的日子。 因为有些原因,需要在对文本进行一些特殊修改,比如说在一段话里每个字之间加入某些东西,比如说在【我我我我我】里加入【1】,变成【我1我1我1我1我】 后来在通...
  • qq_20142513
  • qq_20142513
  • 2017-12-04 20:55:12
  • 41

工作点滴1 - Cisco IOS ver12.4 dampening bug - 思科路由器端口抑制漏洞

概述 ——————————————————————————————————————————————————           http://www.cisco.com/en/US/docs/ios/...
  • u013348293
  • u013348293
  • 2014-01-02 20:33:55
  • 1658

ubuntu12.4以root账户登录

ubuntu默认是禁止以root登录图形界面的,这样做也是有好处的,建议你也不要以root登录,不然Ubuntu会死得很快的。 以下方法来自网友 zsj1029 在Ubuntu中文论坛所发表的名为“u...
  • leechee_1986
  • leechee_1986
  • 2012-10-20 16:24:30
  • 3852

2015年12月4日工作总结

今天没有什么记忆深刻的事情完成的工作 登陆功能 注册功能 重置密码功能 部署了gitlab-runner 问题今天没有遇到什么太大的难题生活今天看了《夏洛特烦恼》还不错,开心 今天贾志超生日,本来想...
  • liugao15
  • liugao15
  • 2015-12-05 00:39:40
  • 256
收藏助手
不良信息举报
您举报文章:12.4
举报原因:
原因补充:

(最多只允许输入30个字)