c++编写一个程序,定义一个关于点的类point: 数据成员:横坐标x,纵坐标y 成员函数: 1、有参构造函数(成员的初始化列表形式) 2、set函数 3、getx函数 4、gety函数 5、析构函数 要求:成员函数在类中声明,类外定义。 定义一个对象p,输出其坐标信息
时间: 2024-01-22 14:20:56 浏览: 91
下面是一个符合要求的程序:
#include <iostream>
using namespace std;
class point {
private:
int x, y;
public:
point(int x_ = 0, int y_ = 0) : x(x_), y(y_) {} // 有参构造函数
void set(int x_, int y_) { x = x_; y = y_; } // set函数
int getx() { return x; } // getx函数
int gety() { return y; } // gety函数
~point() {} // 析构函数
};
int main() {
point p(3, 4);
cout << "坐标信息:" << endl;
cout << "x = " << p.getx() << ", y = " << p.gety() << endl;
return 0;
}
输出:
坐标信息:
x = 3, y = 4
相关问题
定义一个二维坐标点类Point 数据成员(访问权限定义为protected): 横坐标、纵坐标 成员函数(访问权限定义为public): 带默认参数的构造函数:数据成员初始化 Point(double _x = 0.0, double _y = 0.0); 拷贝构造函数:数据成员初始化 Point(const Point &point); 设置横坐标 设置纵坐标 获取横坐标(定义为const成员函数) 获取纵坐标(定义为const成员函数) 打印点的坐标信息(定义为const成员函数),格式:(x, y) 要求:将类的定义与类成员函数的实现分开。 定义一个普通函数用来计算两个Point对象的距离: double pdistance(const Point &p1, const Point &p2); 并将pdistance函数声明为类Point的友元函数,使其能够直接访问Point的保护数据成员。 定义一个普通函数用来计算两个Point对象的中点: Point midpoint(const Point &p1, const Point &p2); 并将midpoint函数声明为类Point的友元函数,使其能够直接访问Point的保护数据成员。
类Point的定义:
class Point {
protected:
double x;
double y;
public:
Point(double _x = 0.0, double _y = 0.0);
Point(const Point &point);
void setX(double _x);
void setY(double _y);
double getX() const;
double getY() const;
void print() const;
friend double pdistance(const Point &p1, const Point &p2);
friend Point midpoint(const Point &p1, const Point &p2);
};
类Point的实现:
Point::Point(double _x, double _y) : x(_x), y(_y) {}
Point::Point(const Point &point) {
x = point.x;
y = point.y;
}
void Point::setX(double _x) {
x = _x;
}
void Point::setY(double _y) {
y = _y;
}
double Point::getX() const {
return x;
}
double Point::getY() const {
return y;
}
void Point::print() const {
cout << "(" << x << ", " << y << ")" << endl;
}
double pdistance(const Point &p1, const Point &p2) {
double dx = p1.x - p2.x;
double dy = p1.y - p2.y;
return sqrt(dx * dx + dy * dy);
}
Point midpoint(const Point &p1, const Point &p2) {
double mx = (p1.x + p2.x) / 2.0;
double my = (p1.y + p2.y) / 2.0;
return Point(mx, my);
}
用C++定于知识,编写一个程序,定义一个复数类,含实部和虚部两个数据成员,再定义一个坐标类Point,含有横坐标和纵坐标两个数据成员, 该类中有一个成员函数print(),可以输出一个点的横坐标和纵坐标,并且该函数为复数类的友元函数,可以输出得数的实部和虚部。
好的,让我来回答您的问题。
首先,我们可以使用 C 语言来定义复数类和坐标类。下面是一个示例代码:
#include <stdio.h>
// 复数类
typedef struct {
double real; // 实部
double imag; // 虚部
} Complex;
// 坐标类
typedef struct {
double x; // 横坐标
double y; // 纵坐标
} Point;
// 友元函数声明
void print(Complex c, Point p);
// 友元函数定义
void print(Complex c, Point p) {
printf("Complex: real=%f, imag=%f\n", c.real, c.imag);
printf("Point: x=%f, y=%f\n", p.x, p.y);
}
int main() {
// 创建一个复数对象和一个坐标对象
Complex c = {1.0, 2.0};
Point p = {3.0, 4.0};
// 调用友元函数打印对象信息
print(c, p);
return 0;
}
以上代码定义了一个名为 Complex 的结构体,它有两个成员变量:实部和虚部。同时也定义了一个名为 Point 的结构体,它有两个成员变量:横坐标和纵坐标。我们定义了一个名为 print 的函数作为友元函数,可以同时输出 Complex 和 Point 的数据成员。
在主函数中,我们创建了一个复数对象 c 和一个坐标对象 p,然后调用了 print 函数打印对象信息。
希望能够解答您的问题,如果还有其他疑问可以继续向我提问。
相关推荐
















