C++primer plus第六版课后编程题答案13.4
来源:互联网 发布:刷q币软件 编辑:程序博客网 时间:2024/05/16 14:08
Port.cpp
#include <iostream>#include <string>//老规矩,我懒得用char*了using namespace std;class Port{private:string brand;//string style;//不需要style,因为派生出来的就是styleint bottles;public:string br(){return brand;};int bot(){return bottles;};Port(const string br="none",int b=0)//const string st="none"{brand=br;//style=st;bottles=b;}Port(const Port &p){brand=p.brand;//style=p.style;bottles=p.bottles;}//Port(){};//因为派生类无参数的构造函数,所以基类必须有相对应的构造函数//发现不用也是可以的,因为第一个有了默认参数值,也可以算是无参构造函数virtual ~Port(){}Port &operator=(const Port &p){return Port(p);//不能使用类似:Port p;p=p2,这种情况,必须声明的同时赋值}Port &operator+=(int b){bottles=bottles+b;return *this;}Port &operator-=(int b){if(bottles>=b)bottles=bottles-b;elsecout<<"error!no so much brand!"<<endl;return *this;}int BottlesCount()const{return bottles;};virtual void Show()const{cout<<"Brand:"<<brand<<endl;//cout<<"Kind:"<<style<<endl;cout<<"Bottlse:"<<bottles<<endl;}friend ostream &operator<<(ostream &os,const Port &p){cout<<p.brand<<" ,"<<p.bottles<<endl;return os;}};class VintagePort:public Port{private:string nickname;int year;public:VintagePort(){Port::Port();nickname="default";year=2999;};VintagePort(const string br,int b,const string nn,int y=2999):Port(br,b){nickname=nn;year=y;};VintagePort(const VintagePort &vp){Port::Port(vp);//这样是否可以?,答案是不可以//brand=vp.br();nickname=vp.nickname;year=vp.year;}~VintagePort(){};VintagePort&operator=(const VintagePort &vp){return VintagePort(vp);}void Show(){Port::Show();cout<<"nickname:"<<nickname<<endl;cout<<"year:"<<year<<endl;}friend ostream &operator<<(ostream &os,const VintagePort &p){os<<(const Port &)p;cout<<p.nickname<<" ,"<<p.year<<endl;return os;}};
main134.cpp
#include <iostream>#include "Port.cpp"using namespace std;void main134(){/*Port p1;Port p1("Gallo",20);Port p2(p1);Port p3;//=p1;//p3=p1;//这时候,p3已经采取了默认初始化值//p1.Show();//cout<<p1;//cout<<p3;/*p2.Show();p2+=10;p2.Show();p2-=15;p2.Show();*/VintagePort vp1;//vp1.Show();VintagePort vp2("Vintage",140,"xxoo",1989);//vp2.Show();cout<<vp2;//VintagePort vp3(vp2);//这样子的话,brand,bottles都是Port初始化默认值VintagePort vp3=vp2;//这里我就不改了,自己改一下吧,最近有点累vp3.Show();cin.get();cin.get();}
0 0
- C++primer plus第六版课后编程题答案13.4
- C++primer plus第六版课后编程练习答案13.4
- C++primer plus第六版课后编程题答案 6.1
- C++primer plus第六版课后编程题答案 6.2
- C++primer plus第六版课后编程题答案 6.3
- C++primer plus第六版课后编程题答案 6.4
- C++primer plus第六版课后编程题答案 6.5
- C++primer plus第六版课后编程题答案 6.6
- C++primer plus第六版课后编程题答案 6.7
- C++primer plus第六版课后编程题答案 6.8
- C++primer plus第六版课后编程题答案 6.9
- C++primer plus第六版课后编程题答案7.1
- C++primer plus第六版课后编程题答案7.2
- C++primer plus第六版课后编程题答案7.3
- C++primer plus第六版课后编程题答案7.4
- C++primer plus第六版课后编程题答案7.5
- C++primer plus第六版课后编程题答案7.6
- C++primer plus第六版课后编程题答案 7.7
- begin
- 【LeetCode】Copy List with Random Pointer
- 常见基本计算
- 工作6年后的我
- 3.1操作系统之存储管理
- C++primer plus第六版课后编程题答案13.4
- 模拟新浪微博的随便看看栏目
- ZOJ-2540
- Spring IOC容器
- J2ee和.net心得
- 阿里巴巴2014研发工程师实习生面试经历
- Java基础巩固之线程学习
- UVa 10110 - Light, more light
- 黑马程序员_Java基础_抽象类,模板设计模式,接口,内部类,多态