我收到一条错误消息,说我无法访问私人会员x和y。如何编写方法getX()和getY()以便它们可以看到x和y?感谢。
#include <iostream>
#include <string>
using namespace std;
class Point {
public:
Point(int x, int y);
Point();
int getX();
int getY();
private:
int x, y;
};
int Point::getX() {
return x;
}
int Point::getY() {
return y;
}
void main () {
Point p(5,5);
Point g;
cout << p.x << endl;
cout << g.y;
string s;
cin >> s;
}
答案 0 :(得分:7)
嗯,你已经 写了getX
和getY
,你只需要使用它们:
cout << p.getX() << endl;
cout << g.getY();
请注意,由于getX()
和getY()
不会修改您的课程,因此它们应为const
:
class Point {
public:
// ...
int getX() const;
int getY() const;
// ...
};
// ...
int Point::getX() const {
return x;
}
int Point::getY() const {
return y;
}
// ...
答案 1 :(得分:2)
不应该是
cout << p.getX() << endl;
cout << g.getY();
答案 2 :(得分:1)
您无法访问x和y,因为它们是私有的。但是,您已将getX和getY公开,因此您的代码将如下所示:
cout << p.getX() << endl;
cout << g.getY();
string s;
cin >> s;
答案 3 :(得分:1)
Point::getX()
和Point::getY()
实际上分别x
y
- 错误发生在main
,您尝试直接访问它们,而不使用你为此目的制造的吸气剂。
cout << p.getX() << endl;
答案 4 :(得分:1)
好像你已经解决了自己编写函数的问题。现在,您所要做的就是更改main
以调用这些功能:
// note the proper return type
int main() {
Point p(5,5);
cout << p.getX() << endl;
// more code
return 0;
}
答案 5 :(得分:1)
您的get_
方法是正确的。问题是您没有在main
函数中使用它们!试试这个:
cout << p.getX() << endl;