C++类与对象练习 2

本文介绍了如何在C++中使用派生类(如Housing继承自Building)和抽象类(如Shape派生出Rectangle和Circle)进行编程,包括数据成员的定义、构造函数、虚函数的使用以及创建对象并输出其相关信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 可以来看本人关于类与对象的学习笔记

程序功能:程序中已经构建好了一个基类Building,用来存储一座楼房的层数、房间数以及它的总平方英尺数。现需要建立派生类Housing,公有继承Building,并存储下面的内容:卧室和浴室的数量。请按下列要求完成相应操作,然后编制应用程序,建立住宅楼对象,并输出有关数据。

(1)定义派生类Housing的私有数据成员bedrooms和bathrooms,分别表示卧室数和浴室数,它们都是int数据类型。

(2)完成派生类Housing的构造函数的定义,并实现数据成员的初始化。

(3)完成派生类Housing的成员函数show的定义,将Housing对象的值输出到屏幕上。

(4)编写主函数,创建Housing对象hob,并初始化数据成员为(5,7,140,2,2)。程序运行结果如下。

Housing:

floors:5

rooms:7

total area:140

bedrooms:2

bathrooms:2

#include<iostream>
using namespace std;
class Building
{
public:

protected:  //这里成员变量得定义为protected或public,不然下面公有继承不了
	int floors, rooms;
	float total_area;
private:

};
class Housing :public Building
{
public:
	Housing(int fl,int room,float area,int bed,int bath)
	{
		floors = fl;
		rooms = room;
		total_area = area;
		bedrooms = bed;
		bathrooms = bath;
	}
	void show() const
	{
		cout << "floors:" << floors << endl;
		cout << "rooms:" << rooms << endl;
		cout << "total_area:" << total_area << endl;
		cout << "bedrooms:" << bedrooms << endl;
		cout << "bathrooms:" << bedrooms << endl;
	}
private:
	int bedrooms, bathrooms;
};
int main()
{
	Housing hob(5, 7, 140, 2, 2);
	hob.show();
	return 0;
}

 --------------------------------------------------------------------------------------------------------------------------------

程序功能:构建一个基类Shape类,它是一个表示形状的抽象类,area()为求图形面积的虚函数。请从Shape类公有派生矩形类(Rectangle),然后编制应用程序建立矩形类对象,求矩形的面积并输出它们的有关数据。

(1)定义Shape类的保护数据成员length和breadth,表示形状的长度和宽度,均为int数据类型。

(2)定义Shape类的带参构造函数Shape(int x,int y),并初始化数据成员length和breadth为x和y。

(3)定义Shape类的公有成员函数area(),并设置为虚函数。

(4)完成派生类Rectangle的构造函数的定义,实现数据成员的初始化。

(6)完成派生类Rectangle的成员函数area的定义,求矩形面积,并屏幕输出矩形的长、宽和面积。

(7)编写主函数,创建Rectangle对象r,并初始化数据成员为(3,5),然后向r对象发送area消息。程序运行结果如下:

Rectangle:

length:3

breadth:5

area:15

#include<iostream>
using namespace std;
class Shape {
public:
	Shape() {};
	Shape(int x, int y)
	{
		length = x;
		breadth = y;
	}
	virtual void area()=0
	{

	}
protected:
	int length, breadth;
private:
	
};
class Rectangle :public Shape
{
public:
	Rectangle() {};
	Rectangle(int x,int y)
	{
		length = x;
		breadth = y;
	}
	void area()
	{
		cout << "Rectangle:" << endl;
		cout << "    length:" << length << endl;
		cout << "    breadth:" << breadth << endl;
		cout << "    area:" << length * breadth << endl;
	}
};
int main()
{
	Rectangle r(3,5);
	r.area();
	return 0;
}

  -------------------------------------------------------------------------------------------------------------------------------

程序功能:构建一个基类Shape类,它是一个表示形状的抽象类,area()为求图形面积的虚函数。请从Shape类公有派生出圆类(Circle)和三角形类(Triangle),然后编制应用程序,建立圆类和三角形类对象,求圆和三角形的面积,并输出它们的有关数据。

(1)定义Shape类的公有成员函数area,并设置为虚函数。

(2)定义派生类Circle的私有数据成员r和s,分别表示圆的半径和面积,均为float型。

(3)定义派生类Triangle的私有数据成员w、h和s,分别表示三角形的底、高和面积,均为float型。

(4)分别完成派生类Circle和Triangle的构造函数的定义,实现数据成员的初始化。

(5)分别完成派生类Circle和Triangle的成员函数area的定义,求圆和三角形面积,并屏幕输出圆半径、面积,三角形底边、高和面积。

(6)编写主函数,创建Circle类对象c(5)和Triangle类对象t(3,4),向对象c和t分别发送area消息。程序运行结果如下。

圆半径:5     圆面积:78.5

三角形底边:3 三角形高:4 三角形面积:6

#include<iostream>
using namespace std;
const double PI = 3.14;
class Shape {
public:
	virtual void area() = 0
	{

	}
};

class Circle :public Shape
{
public:
	Circle() {};
	Circle(float r)
	{
		this->r = r;
	}
	void area()
	{
		cout << "圆半径:" <<r<< "		";
		cout << "圆面积:" << PI * r * r << endl;
	}
private:
	float r, s;
};

class Triangle :public Shape
{
public:
	Triangle() {};
	Triangle(float w,float h)
	{
		this->w = w;
		this->h = h;
	}
	void area()
	{
		cout << "三角形底边:" << w << "		";
		cout << "三角形高:" << h << "		";
		cout << "三角形面积:" << 0.5 * w * h << endl;
	}
private:
	float w, h, s;
};
int main()
{
	Circle c(5);
	c.area();
	Triangle t(3, 4);
	t.area();
	return 0;
}

 

智能网联汽车的安全员高级考试涉及多个方面的专业知识,包括但不限于自动驾驶技术原理、车辆传感器融合、网络安全防护以及法律法规等内容。以下是针对该主题的一些核心知识点解析: ### 关于智能网联车安全员高级考试的核心内容 #### 1. 自动驾驶分级标准 国际自动机工程师学会(SAE International)定义了六个级别的自动驾驶等级,从L0到L5[^1]。其中,L3及以上级别需要安全员具备更高的应急处理能力。 #### 2. 车辆感知系统的组成功能 智能网联车通常配备多种传感器,如激光雷达、毫米波雷达、摄像头和超声波传感器等。这些设备协同工作以实现环境感知、障碍物检测等功能[^2]。 #### 3. 数据通信网络安全 智能网联车依赖V2X(Vehicle-to-Everything)技术进行数据交换,在此过程中需防范潜在的网络攻击风险,例如中间人攻击或恶意软件入侵[^3]。 #### 4. 法律法规要求 不同国家和地区对于无人驾驶测试及运营有着严格的规定,考生应熟悉当地交通法典中有关自动化驾驶部分的具体条款[^4]。 ```python # 示例代码:模拟简单决策逻辑 def decide_action(sensor_data): if sensor_data['obstacle'] and not sensor_data['emergency']: return 'slow_down' elif sensor_data['pedestrian_crossing']: return 'stop_and_yield' else: return 'continue_driving' example_input = {'obstacle': True, 'emergency': False, 'pedestrian_crossing': False} action = decide_action(example_input) print(f"Action to take: {action}") ``` 需要注意的是,“橙点同学”作为特定平台上的学习资源名称,并不提供官方认证的标准答案集;议通过正规渠道获取教材并参加培训课程来准备此资格认证考试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值