定义并实现一个类 Myst,使下列语句能够正常运行。 Myst x(3.2), y(5,5), z(0.0); z = 8.9 – y; y = x – 6.3;
时间: 2024-03-24 16:38:58 浏览: 19
好的,以下是代码实现:
```c++
#include <iostream>
using namespace std;
// 定义 Myst 类
class Myst {
public:
Myst(double x = 0, double y = 0) : m_x(x), m_y(y) {} // 构造函数
Myst operator-(double num) { // 重载 - 运算符,用于计算 Myst 对象与 double 类型的差
Myst temp;
temp.m_x = m_x - num;
temp.m_y = m_y - num;
return temp;
}
Myst operator-(const Myst& obj) { // 重载 - 运算符,用于计算两个 Myst 对象的差
Myst temp;
temp.m_x = m_x - obj.m_x;
temp.m_y = m_y - obj.m_y;
return temp;
}
void display() { // 输出 x 和 y 的值
cout << "x = " << m_x << ", y = " << m_y << endl;
}
private:
double m_x;
double m_y;
};
int main() {
Myst x(3.2), y(5, 5), z(0.0);
z = 8.9 - y;
y = x - 6.3;
x.display();
y.display();
z.display();
return 0;
}
```
在上述代码中,定义了`Myst`类,包含两个数据成员`m_x`和`m_y`,以及构造函数、重载的`-`运算符。其中,第一个`-`运算符用于计算`Myst`对象与`double`类型的差,第二个`-`运算符用于计算两个`Myst`对象的差。在`main()`函数中,分别创建了三个`Myst`对象`x`、`y`和`z`,并通过重载的`-`运算符实现了减法运算,赋值给了`z`和`y`对象。最后输出三个对象的`x`和`y`值。