求源代码

hxd123456it 2013-04-27 11:10:36
要求:编写一个包含类的程序。
要求:1.每位同学的程序不得相同或极其相似,否则相同的同学全部记为0分;
2.类至少包含三层,最后一层至少含有3个对象。
3.类必须涵盖封装、继承、多态三个特点,最后的多态需要使用虚函数。
要求用c++
...全文
83 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Joseph_ 2013-04-28
  • 打赏
  • 举报
回复
好像忘记加入封装的特性了。你自己加一下、就是对类中的成员变量进行设置获取的函数 void set(); int get(); 在交通工具类里面加一个 这个不用 纯虚函数函数就行 直接对类的成员变量操作 赋值和return 成员变量的值
Joseph_ 2013-04-28
  • 打赏
  • 举报
回复
明天五一放假,今天心情好、给你写了。 你看符合你的要求不;

#include <iostream>

using namespace std;

/*交通工具*/
class TrafficTools
{
public:
	TrafficTools(int max)
	{
		Max = max;
	}
	virtual ~TrafficTools()
	{
	}  //析构函数使用虚函数,可以防止new出来的对象释放完全、造成内存泄露
	virtual void show() = 0; //显示交通工具
	virtual void run() = 0;
	virtual int GetMax() = 0;

protected:
	int Max;	//最大载数
};

class Vehicle: public TrafficTools
{
public:
	Vehicle(int speed,int max) :TrafficTools(max) 
	{
		SpeedVehicle = speed;
	}
	virtual int GetMax() = 0;
	virtual int GetSpeed() = 0;

	virtual ~Vehicle()
	{
	}
	virtual void run() = 0;
	virtual void show()
	{
		cout<<"车"<<endl;
	}
protected:
	int SpeedVehicle;  //车速
};

class Boat: public TrafficTools
{
public:
	Boat(int speed,int max):TrafficTools(max)
	{
		SpeedBoat = speed;
	}

	virtual ~Boat()
	{
	}
	virtual void run() = 0;
	virtual int GetMax() = 0;
	virtual int GetSpeed() = 0;
	virtual void show()
	{
		cout<<"船"<<endl;
	}
protected:
	int SpeedBoat;	//船速
};

class Car :public Vehicle
{
public:
	Car(int speed,int max):Vehicle(speed ,max)
	{
	}
	virtual ~Car()
	{
	}
	virtual void run() {cout<<"小车开动...."<<endl;}
	virtual void show(){cout<<"小车"<<endl;}
	virtual int GetSpeed()
	{
		return SpeedVehicle;
	}
	virtual int GetMax()
	{
		return Max;
	}
};

class Yacht:public Boat   //游艇
{
public:
	Yacht(int speed,int max) : Boat(speed,max)
	{
	}
	~Yacht()
	{
	}
	virtual void run() {cout<<" 游艇开动..."<<endl;}
	virtual void show(){cout<<"游艇"<<endl;}
	virtual int GetSpeed()
	{
		return SpeedBoat;
	}
	virtual int GetMax()
	{
		return Max;
	}
};

int main()
{
	/*new 一个交通工具的指针*/
	TrafficTools * obj = new Yacht(2,2);
	obj->run();
	obj->show();
	cout<<"最大载人数:"<<obj->GetMax()<<endl;
	cout<<"速度:"<<((Boat *)obj)->GetSpeed()<<endl;
	delete obj;
	
	obj = new Car(2,2);
	obj->run();
	obj->show();
	cout<<"最大载人数:"<<obj->GetMax()<<endl;
	cout<<"速度:"<<((Vehicle *)obj)->GetSpeed()<<endl;

	return 0;
}
Joseph_ 2013-04-28
  • 打赏
  • 举报
回复
你是来做作业题目啊? 还是20分.....
hxd123456it 2013-04-28
  • 打赏
  • 举报
回复
好,ok给分,顺便鉴赏下

64,643

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧