(3)火炮类、战车类、坦克类的定义和实现,并设计主程序进行测试。要求坦克类从火炮类和战车类派生。
时间: 2024-06-03 19:04:56 浏览: 15
火炮类、战车类、坦克类都是军事装备中常见的武器装备,下面是它们的定义和实现:
1. 火炮类的定义和实现:
火炮是一种远程炮兵武器,通常由火炮身、炮弹和火控系统组成,其定义和实现如下:
```
class Cannon {
private:
int caliber; // 火炮口径
int range; // 射程
int power; // 火力
public:
Cannon(int c, int r, int p) : caliber(c), range(r), power(p) {}
virtual void fire() {
cout << "使用火炮进行攻击,火力值为:" << power << endl;
}
};
```
2. 战车类的定义和实现:
战车是一种具有较强机动性和防护能力的装甲车辆,通常由履带、车身、武器系统和引擎等组成,其定义和实现如下:
```
class Tank {
private:
int speed; // 速度
int armor; // 护甲
Cannon *cannon; // 战车上搭载的火炮
public:
Tank(int s, int a, Cannon *c) : speed(s), armor(a), cannon(c) {}
virtual void move() {
cout << "战车前进,速度为:" << speed << endl;
}
virtual void fire() {
cout << "战车使用火炮攻击,火力值为:" << cannon->power << endl;
cannon->fire();
}
};
```
3. 坦克类的定义和实现:
坦克是一种综合性的装甲车辆,具有战车和火炮的特点,坦克类从战车类和火炮类派生,其定义和实现如下:
```
class Tank : public Cannon, public Tank {
public:
Tank(int s, int a, int c, int r, int p)
: Cannon(c, r, p), Tank(s, a, this) {}
};
```
主程序测试代码如下:
```
int main() {
Cannon c(100, 5000, 300);
Tank t(50, 500, 100, 3000, 200);
t.move();
t.fire();
return 0;
}
```
输出结果为:
```
战车前进,速度为:50
战车使用火炮攻击,火力值为:200
使用火炮进行攻击,火力值为:200
```