#include <iostream> using namespace std; class Location { private: int X,Y; public: void init(int initX,int initY) { X=initX; Y=initY; } int sunXY() { return X+Y; } }; int main() { Location A1; int x,y; A1.init(5,3); x=A1.X;y=A1.Y;//main 函数不能访问对象A1的私有成员 cout<<x+y<<" "<<A1.sumXY()<<endl; return 0; }以上代码有何错误,指出并修改
时间: 2024-01-09 18:05:28 浏览: 63
使用include <iostream>时一定要加using namespace std
以上代码中的错误是在main函数中尝试访问对象A1的私有成员X和Y。私有成员只能在类的成员函数中被访问,无法在类的外部被访问。
修改后的代码如下:
```
#include <iostream>
using namespace std;
class Location {
private:
int X,Y;
public:
void init(int initX,int initY) {
X=initX;
Y=initY;
}
int sumXY() {
return X+Y;
}
// 添加 getX 和 getY 成员函数以便访问私有成员
int getX() {
return X;
}
int getY() {
return Y;
}
};
int main() {
Location A1;
int x,y;
A1.init(5,3);
x=A1.getX(); // 通过getX访问私有成员X
y=A1.getY(); // 通过getY访问私有成员Y
cout<<x+y<<" "<<A1.sumXY()<<endl;
return 0;
}
```
阅读全文