下列程序段是否有错,若有错请改错完成程序。 #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 21:19:00 浏览: 49
这个程序段有几个错误,请看以下的修改:
1. 头文件应该用`#include<iostream>`,而不是`#include<iostream.h>`,后者是旧版本的写法。
2. 类的声明应该以分号结束,即`class point { ... };`
3. 类的成员函数`setpoint`不应该有返回值,因为它的类型是`void`,而不是`int`。
4. 成员函数的定义需要在类的外面,所以应该把`setpoint`的定义移动到类的后面。
5. `main`函数的返回值应该是`int`,而不是`void`。
6. `cout`语句中访问`p1`的私有成员变量`x`和`y`是不允许的,应该改为调用`setpoint`函数设置坐标后再输出。
修改后的程序如下所示:
```
#include<iostream>
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);
std::cout << "坐标为:(" << p1.x << "," << p1.y << ")" << std::endl;
return 0;
}
```
注意:在这个程序中,`setpoint`函数的作用是设置私有成员变量的值,因此在`main`函数中访问这些私有成员变量是不允许的。如果要输出坐标值,应该在`setpoint`函数中加入输出语句,或者增加一个公有成员函数来输出坐标值。
阅读全文