1.下列程序段是否有错,若有错请改错完成程序。 #include<iostream.h> class point---------------------------------------------① { private: int x,y; public: void setpoint(int, int);--------------------② }; int point:: setpoint(int xx, int yy) ----------------③ { x=xx;--------------------------------------------- ④ y=yy;--------------------------------------------- ⑤ return 1;------------------------------------------ ⑥ } void main() { point p1;------------------------------------------------------------------------------ ⑦ p1.setpoint(2,4);--------------------------------------------------------------------- ⑧ cout<<”坐标为:(”<<p1.x<<”,”<<p1.y<<”)”<<endl;------------------------- ⑨ }
时间: 2023-08-15 20:19:14 浏览: 89
以下是已改错的程序段:
```c++
#include <iostream>
using namespace std;
class point {
private:
int x, y;
public:
void setpoint(int, int);
};
void point::setpoint(int xx, int yy) {
x = xx;
y = yy;
}
int main() {
point p1;
p1.setpoint(2, 4);
cout << "坐标为:(" << p1.x << "," << p1.y << ")" << endl;
return 0;
}
```
修改说明:
1. 第一行应该是 `#include <iostream>` 而不是 `#include<iostream.h>`,因为 `iostream.h` 是一个过时的头文件。
2. 在 `class point` 的定义中,`setpoint` 函数的声明应该是 `void setpoint(int, int);` 而不是 `int setpoint(int, int);`,因为该函数没有返回值。
3. 在 `point` 类外部实现 `setpoint` 函数时,应该将函数头部的 `int` 去掉。
4. 在 `main` 函数中,应该用 `int main()` 代替 `void main()`,因为前者符合 C++ 标准,而后者是 Microsoft Visual Studio 特有的写法。
5. 在 `main` 函数中,输出点的坐标时,应该使用 `p1.x` 和 `p1.y`,而不是 `x` 和 `y`,因为 `x` 和 `y` 是 `point` 类的私有成员,不能在类外部直接访问。
阅读全文