提问人:Mohammed Amer 提问时间:3/7/2023 更新时间:3/7/2023 访问量:65
为什么在将对象传递给方法时可以访问私有数据成员?[复制]
why is it possible to access private data members when passing an object to a method? [duplicate]
问:
#include <iostream>
using std::cout;
class distance {
private :
int feet;
int inches;
public :
void setfeet(int x) { feet = x; }
int getfeet(void) { return feet; }
void setinches(int y) { inches = y; }
int getinches(void) { return inches; }
distance add(distance temp) {
distance result(0, 0);
result.feet = feet + temp.feet;
result.inches = inches + temp.inches;
return result;
}
distance(int ft, int in) : feet(ft), inches(in) {}
};
int main(void)
{
distance a(5, 6);
distance b(3, 4);
distance sum(a.add(b));
cout << sum.getfeet() <<"\n";
cout << sum.getinches() << "\n";
return 0;
}
在此代码示例中,我可以访问在方法 add 中创建的结果对象的私有数据成员,还可以使用 dot(.) 运算符访问对象 temp 的私有数据成员,该成员是 add 方法中的参数 这怎么可能?
答: 暂无答案
评论
private
适用于整个类,而不是单个对象(类的实例)。查看链接的重复项。this
public
protected
private