用c++写一个shape类,其中有getArea、getPerimeter、getVolume和getName函数。
时间: 2024-04-29 12:24:50 浏览: 97
C++编写Shape类
4星 · 用户满意度95%
好的,你的问题是关于一个shape类的编写。以下是代码:
```c
#include <iostream>
using namespace std;
class Shape {
public:
virtual double getArea() = 0;
virtual double getPerimeter() = 0;
virtual double getVolume() = 0;
virtual string getName() = 0;
};
class Square : public Shape {
private:
double side;
public:
Square(double side) : side(side) {}
double getArea() { return side * side; }
double getPerimeter() { return 4 * side; }
double getVolume() { return 0; }
string getName() { return "Square"; }
};
class Cube : public Shape {
private:
double side;
public:
Cube(double side) : side(side) {}
double getArea() { return 6 * side * side; }
double getPerimeter() { return 12 * side; }
double getVolume() { return side * side * side; }
string getName() { return "Cube"; }
};
int main() {
Square square(5);
cout << square.getName() << " has area: " << square.getArea() << ", perimeter: " << square.getPerimeter() << ", volume: " << square.getVolume() << "." << endl;
Cube cube(3);
cout << cube.getName() << " has area: " << cube.getArea() << ", perimeter: " << cube.getPerimeter() << ", volume: " << cube.getVolume() << "." << endl;
return 0;
}
```
这个shape类定义了抽象基类Shape,其中包含了四个虚函数:getArea、getPerimeter、getVolume和getName。我们可以派生Square和Cube类来实现这些函数并且提供它们自己的展示名称。
当然,这只是一个非常简单的示例类,你可以根据你的需求,任意扩展与修改。
阅读全文