码图:166 工具类Vehicle(C++)

题目描述:

引入头文件Vehicle.h,它的内容如下:

#include <iostream>
using namespace std;
class Vehicle{
public:
	Vehicle(){
		cout<<"Vehicle constructor..."<<endl;
	}
	~Vehicle(){
		cout<<"Vehicle destructor..."<<endl;
	}
	virtual void display() const =0;
	static Vehicle * createCar();
	static Vehicle * createTruck();
	static Vehicle * createBoat();
};

将Vehicle类作为基类,派生出Car类,Truck类和Boat类。

完成Car类,Truck类和Boat类的构造函数和析构函数,参照Vehicle的构造函数和析构函数输出语句,
如Car类的构造函数输出:
Car constructor…回车

实现这三个派生类的display方法,输出This is a ***!
例如Car类的display方法输出:
This is a car!回车

另外在你的代码中必须加入Vehicle类的createCar()、createTruck()和createBoat()方法的实现,
且这三个方法的实现必须在Car类,Truck类和Boat类的定义之后,实现如下:

Vehicle * Vehicle::createCar(){return new Car();}
Vehicle * Vehicle::createTruck(){return new Truck();}
Vehicle * Vehicle::createBoat(){return new Boat();}

实现:

#include"Vehicle.h"
class Car :public Vehicle
{
public:
	Car() { cout << "Car constructor..." << endl; }
	virtual void display()const
	{
		cout << "This is a car!"<<endl;
	}
	~Car() { cout << "Car destructor..." << endl; }
};

class Truck :public Vehicle
{
public:
	Truck() { cout << "Truck constructor..." << endl; }
	virtual void display()const
	{
		cout << "This is a truck!"<<endl;
	}
	~Truck() { cout << "Truck destructor..." << endl; }
};

class Boat :public Vehicle
{
public:
	Boat() { cout << "Boat constructor..." << endl; }
	virtual void display()const
	{
		cout << "This is a boat!"<<endl;
	}
	~Boat() { cout << "Boat destructor..." << endl; }
};

Vehicle* Vehicle::createCar() { return new Car(); }
Vehicle* Vehicle::createTruck() { return new Truck(); }
Vehicle* Vehicle::createBoat() { return new Boat(); }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值