编写三个同名的函数:getarea(…),它们之间形成重载,分别用于求圆的面积,矩形的面积,三角形面积。
时间: 2023-04-25 22:03:18 浏览: 269
getarea(…)函数可以被重载,用于计算不同形状的面积,包括圆形、矩形和三角形。这三个同名函数的参数和返回值可能会有所不同,但它们都被称为getarea(…)函数。这样,我们可以根据不同的形状来调用不同的函数,而不必担心函数名的混淆。
相关问题
编写三个同名的函数:float getarea(参数列表),它们之间形成重载,分别用于求圆的面积,矩形的面积,三角形面积。
可以编写三个同名的函数:float getarea(参数列表),它们之间形成重载,分别用于求圆的面积,矩形的面积,三角形面积。具体实现方式如下:
1. 求圆的面积:
float getarea(float r) {
return 3.14159 * r * r;
}
其中,r为圆的半径。
2. 求矩形的面积:
float getarea(float length, float width) {
return length * width;
}
其中,length为矩形的长度,width为矩形的宽度。
3. 求三角形的面积:
float getarea(float base, float height) {
return .5 * base * height;
}
其中,base为三角形的底边长,height为三角形的高。
创建一个Shape类,定义三个getArea()方法,分别实现求圆面积、矩形面积和三角形面积。创建测试类,求出半径为5的圆面积、边长为5和6的矩形面积以及三边长为3、4、5的三角形面积。python
首先,我们来创建一个名为`Shape`的基础类,它有一个抽象方法`get_area()`:
```python
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def get_area(self):
pass
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def get_area(self):
return 3.14 * (self.radius ** 2)
class Rectangle(Shape):
def __init__(self, length, width):
self.length = length
self.width = width
def get_area(self):
return self.length * self.width
class Triangle(Shape):
def __init__(self, side1, side2, side3):
self.side1 = side1
self.side2 = side2
self.side3 = side3
# 使用海伦公式计算三角形面积,这里假设三条边构成的是一个普通三角形,而不是等腰或直角三角形
def get_area(self):
s = (self.side1 + self.side2 + self.side3) / 2
return (s * (s - self.side1) * (s - self.side2) * (s - self.side3)) ** 0.5
# 测试类
def test_shape_areas():
circle = Circle(5)
rectangle = Rectangle(5, 6)
triangle = Triangle(3, 4, 5)
print("Circle area:", circle.get_area())
print("Rectangle area:", rectangle.get_area())
print("Triangle area:", triangle.get_area())
test_shape_areas()
```
在这个例子中,`Shape`是一个抽象基类,它的子类`Circle`, `Rectangle`, 和`Triangle`分别实现了各自的`get_area()`方法。在`test_shape_areas()`函数中,我们实例化了这三个形状,并计算它们的面积。
阅读全文