shi yan4

//Array.h
#include<iostream>
using namespace std;
class Arrayint
{
	public:
		Arrayint(int n,int value=0);
		~Arrayint();
		int& operator[](int i);
		void print();
	private:
		int *p;
		int size;
};
//Array.cpp
#include"Arrayint.h"
#include<iostream>
#include<cstdlib>
#include<cassert>
using namespace std;
Arrayint::Arrayint(int n,int value):size(n)
{
	p=new int[size];
	if(p==nullptr)
	{
		cout<<"fail to mallocate memory"<<endl;
		exit(0);
	}
	for (int i=0;i<size;i++)
	    p[i]=value;
}
Arrayint::~Arrayint()
{
	delete[] p;
}
void Arrayint::print()
{
	for (int i=0;i<size;i++)
		cout<<p[i]<<" ";
	cout<<endl;
}
int& Arrayint::operator[](int i)
{
	assert(i>=0&&i<=size);
	return p[i];
}
//main.cpp
#include <iostream>
#include"Arrayint.h"
using namespace std;
int main() 
{
	Arrayint a(2);
	a.print();
	Arrayint b(3,6);
	b.print();
	b[0]=2;
	cout<<b[0]<<endl;
	b.print();
	return 0;
}

  

 

//Car.h
#include<iostream>
#include<cstring>
using namespace std;
class Car
{
	public:
		Car(string maker="libing",string model="072921",int year=2018,int odometer=0);
		friend ostream & operator<<(ostream& out,const Car &c);
		void updateOdometer(int newodometer);
	private:
		string maker,model;
		int year,odometer;
};
//Car.cpp
#include"Car.h"
#include<iostream>
using namespace std;
Car::Car(string maker,string model,int year,int odometer):maker(maker),model(model),year(year),odometer(odometer){}

void Car::updateOdometer(int newodometer)
{
	if(newodometer<odometer)
	   cout<<"Warning!!!wrong!"<<endl;
	else
	   odometer=newodometer;
}
//Battery.h
#include<iostream>
#include<cstring>
using namespace std;
class Battery
{
	public:
		Battery(string batterySize="70-kWh");
		string get()
		{
			return batterySize;
		}
	private:
		string batterySize;
};
//Battery.cpp
#include<iostream>
#include<cstring>
#include”Battery.h”
using namespace std;
Battery::Battery(string batterySize="70-kWh"):batterySize(batterySize){}
//ElectricCar.h
#include"Car.h"
#include"Battery.h"
#include<iostream>
#include<cstring>
using namespace std;
class ElectricCar: public Car
{
	public:
		ElectricCar(string maker="libing",string model="072921",int year=2018);
		friend ostream & operator<<(ostream &out,const ElectricCar &c);
	private:
		string maker,model,batterysize;
		int year;
		Battery battery;		
};
//ElectricCar.cpp
#include<cstring>
#include"ElectricCar.h"
ElectricCar::ElectricCar(string maker="libing",string model="072921",int year=2018):maker(maker),model(model),year(year)
		{
			batterysize=battery.get();
		}

//main.cpp
#include<iostream>
#include<cstring.h>
#include"Car.h"
#include"Battery.h"
#include"ElectricCar.h"
using namespace std;
ostream& operator<<(ostream& out,const Car &c)
{
	out<<c.maker<<" "<<c.model<<" "<<c.year<<" "<<c.odometer<<endl;
	return out;
}
ostream& operator<<(ostream& out,const ElectricCar &ec)
{
	out<<c.maker<<" "<<ec.model<<" "<<ec.year<<" "<<ec.battery<<endl;
	return out;
}
int main ()
{
	Car oldcar("Audi","a4",2016);
	cout<<"--------oldcar's info--------"<<endl;
	oldcar.updateOdometer(25000);
	cout<<oldcar<<endl;
	ElectricCar newcar("telsa","model s",2016);
	newcar.updateOdometer(2500);
	cout<<"--------newcar's info--------"<<endl;
	cout<<newcar<<endl;
	return 0;
}

  

 

posted on 2019-05-21 17:57  happy-every-day  阅读(88)  评论(0编辑  收藏  举报