定义一个点类Point,包含两个保护成员(x,y)以及3个公有成员函数,要求构造函数带两个形参,2个普通成员函数(设置坐标以及显示坐标);
时间: 2023-06-15 18:06:57 浏览: 272
以下是一个简单的点类Point的实现:
```
class Point {
protected:
int x;
int y;
public:
Point(int xCoord, int yCoord) : x(xCoord), y(yCoord) {}
void setPoint(int xCoord, int yCoord) {
x = xCoord;
y = yCoord;
}
void showPoint() {
cout << "(" << x << ", " << y << ")" << endl;
}
};
```
上述代码中,Point类包含两个保护成员变量x和y,以及三个公有成员函数:一个构造函数,一个设置坐标的函数setPoint()和一个显示坐标的函数showPoint()。构造函数接受两个形参,用于初始化x和y的值。setPoint()函数用于设置x和y的值,showPoint()函数用于显示点的坐标。
相关问题
2. 定义一个点类Point, 包含两个保护成员(x, y)以及3个公有成员函数,要求构造函数带两个形参,2个普通成员函数(设置坐标以及显示坐标); 再定义一个圆类(Circle),公有继承Point类,新增私有数据成员半径以及4个成员函数,要求构造函数实现数据的初始化,2个普通成员的数分别能设置和获取圆的信息,1个普通成员函数计算圆的面积; 然后在主函数中定义2个Circle类对象并调用相应的函数进行测试。
```C++
#include <iostream>
#include <cmath>
using namespace std;
class Point {
protected:
int x, y;
public:
Point(int a, int b) {
x = a;
y = b;
}
void setPoint(int a, int b) {
x = a;
y = b;
}
void showPoint() {
cout << "(" << x << ", " << y << ")" << endl;
}
};
class Circle : public Point {
private:
double radius;
public:
Circle(int a, int b, double r) : Point(a, b) {
radius = r;
}
void setCircle(int a, int b, double r) {
setPoint(a, b);
radius = r;
}
double getRadius() {
return radius;
}
double getArea() {
return M_PI * radius * radius;
}
};
int main() {
Circle c1(0, 0, 5); // 创建一个圆心为(0, 0),半径为5的圆
Circle c2(3, 4, 2.5); // 创建一个圆心为(3, 4),半径为2.5的圆
// 显示两个圆的信息
cout << "c1的圆心坐标为:";
c1.showPoint();
cout << "c1的半径为:" << c1.getRadius() << endl;
cout << "c1的面积为:" << c1.getArea() << endl;
cout << "c2的圆心坐标为:";
c2.showPoint();
cout << "c2的半径为:" << c2.getRadius() << endl;
cout << "c2的面积为:" << c2.getArea() << endl;
return 0;
}
```
定义点类Point和线段类LineSegment。线段的两个终端为Point类对象。 (1)点类 ①私有成员变量包括x和y,双精度型,表示点的横坐标和纵坐标; ②公有成员函数包括: ·无参数构造函数(缺省构造函数),将点坐标设为(0,0); ·两个参数的构造函数,根据实际值赋予x和y实际坐标值; ·显示函数,用于显示x和y的值。 (2)线段类 ①私有成员变量包括两个点类对象,分别定义线段的左端点和右端点; ②公有成员函数要求实现的功能如下: ·构造函数,用于对两个点进行初始化 ·计算线段的长度 ·显示函数,用于显示线段的两个端点、线段的长度 (3)主函数里面定义2个点类的对象和1个线段类的对象,进行测试。
好的,我来为您展示代码:
```C++
#include <iostream>
#include <cmath>
using namespace std;
class Point {
private:
double x;
double y;
public:
Point() {
x = 0;
y = 0;
}
Point(double a, double b) {
x = a;
y = b;
}
void display() {
cout << "(" << x << ", " << y << ")" << endl;
}
double getX() {
return x;
}
double getY() {
return y;
}
};
class LineSegment {
private:
Point p1;
Point p2;
public:
LineSegment(Point a, Point b) {
p1 = a;
p2 = b;
}
double length() {
double len = sqrt(pow(p1.getX() - p2.getX(), 2) + pow(p1.getY() - p2.getY(), 2));
return len;
}
void display() {
cout << "Endpoint 1: ";
p1.display();
cout << "Endpoint 2: ";
p2.display();
cout << "Length: " << length() << endl;
}
};
int main() {
Point p1(1.0, 2.0);
Point p2(3.0, 4.0);
LineSegment ls(p1, p2);
cout << "Point 1: ";
p1.display();
cout << "Point 2: ";
p2.display();
ls.display();
return 0;
}
```
这个程序定义了一个点类 `Point` 和一个线段类 `LineSegment`,并实现了它们的构造函数、显示函数和长度计算函数。在主函数中,创建了两个点对象和一个线段对象,并进行了测试。
阅读全文