本题要求定义一个点类Point,类的声明见给出的代码,请给出类的完整实现,并通过测试程序。类声明包含的成员如下: 数据成员,点的x和y坐标; 构造函数; 数据成员x和y的访问函数。
以下是定义一个点类Point的完整实现,包含数据成员,构造函数和数据成员x和y的访问函数。
class Point {
private:
double x;
double y;
public:
Point(double x0 = 0, double y0 = 0) : x(x0), y(y0) {}
double getX() const { return x; }
double getY() const { return y; }
};
测试程序如下:
int main() {
Point p(3, 4);
cout << "Point coordinates: (" << p.getX() << ", " << p.getY() << ")" << endl;
return 0;
}
输出结果:
Point coordinates: (3, 4)
定义Point(点)类,由Point类派生出Circle(圆)类,再由Circle类派生出Cylinder(圆柱体)类。将类的定义部分分别作为3个头文件,对它们的成员函数的声明部分分别作为3个源文件(.cpp文件),在主函数中用#include命令把它们包含进来,形成一个完整的程序,
C++语言编写实现它们的具体功能。
Point(点)类是一个基础类,包括点的x和y坐标。它应该包括公有的构造函数、析构函数、获取x坐标的函数、获取y坐标的函数、设置x坐标的函数、设置y坐标的函数等。
Circle(圆)类是从Point类派生出来的类,它包括圆心坐标(x,y)和半径。它应该包括公有的构造函数、析构函数、获取半径的函数、获取圆心x坐标的函数、获取圆心y坐标的函数、设置半径的函数、设置圆心x坐标的函数、设置圆心y坐标的函数等。
Cylinder(圆柱体)类是从Circle类派生出来的类,它包括底面圆心坐标(x,y)、底面半径和高度。它应该包括公有的构造函数、析构函数、获取高度的函数、设置高度的函数、计算圆柱体面积的函数、计算圆柱体体积的函数等。
具体实现要按照上述要求进行代码编写,包括定义Point、Circle、Cylinder的类和声明每个类的成员函数(分别写在三个头文件里),然后在三个源文件中分别实现这些类的成员函数。最后在主函数中调用不同类的成员函数进行测试。
用cpp编写:定义一个点Point类,有点坐标属性(x, y),再定义一个矩形Rectangle类,其属性为两个Point点(分别表示矩形对角线上两点的坐标),编写两个Point类的友元函数,分别计算两个点组成的矩形的周长与面积。在主函数中进行测试。
#include <iostream>
#include <cmath>
using namespace std;
class Point {
private:
double x, y;
public:
Point(double x = 0, double y = 0) : x(x), y(y) {}
double getX() const { return x; }
double getY() const { return y; }
friend double distance(Point p1, Point p2); // 声明友元函数
};
class Rectangle {
private:
Point p1, p2;
public:
Rectangle(Point p1, Point p2) : p1(p1), p2(p2) {}
friend double perimeter(Rectangle r); // 声明友元函数
friend double area(Rectangle r); // 声明友元函数
};
double distance(Point p1, Point p2) {
double dx = p1.x - p2.x;
double dy = p1.y - p2.y;
return sqrt(dx * dx + dy * dy);
}
double perimeter(Rectangle r) {
double length = distance(r.p1, r.p2);
double width = distance(Point(r.p1.getX(), r.p2.getY()), Point(r.p2.getX(), r.p1.getY()));
return 2 * (length + width);
}
double area(Rectangle r) {
double length = distance(r.p1, r.p2);
double width = distance(Point(r.p1.getX(), r.p2.getY()), Point(r.p2.getX(), r.p1.getY()));
return length * width;
}
int main() {
Point p1(1, 1);
Point p2(4, 5);
Rectangle r(p1, p2);
cout << "Perimeter: " << perimeter(r) << endl;
cout << "Area: " << area(r) << endl;
return 0;
}
这段代码定义了一个Point类和一个Rectangle类。Point类表示一个二维平面上的点,其中包括横纵坐标属性。Rectangle类表示一个矩形,其中包括两个Point点,分别表示矩形对角线上两点的坐标。Rectangle类中声明了两个友元函数perimeter()和area(),用于计算矩形的周长和面积。Point类中声明了一个友元函数distance(),用于计算两个点之间的距离。在主函数中创建了两个Point点和一个Rectangle对象,并调用perimeter()和area()方法分别计算矩形的周长和面积,并输出结果。注意,在Point类中声明友元函数时需要使用friend关键字,在类外定义函数时不需要使用类作用域解析符。
相关推荐
















