我正在学习C++的OOP的基本概念,并且遇到了一个合理的问题。面向对象的编程逻辑
#include <iostream>
#include <conio.h>
using namespace std;
class A {
int i;
public:
void set(int x) {
i=x;
}
int get() {
return i;
}
void cpy(A x) {
i=x.i;
}
};
int main()
{
A x, y;
x.set(10);
y.set(20);
cout << x.get() << "\t" << y.get() << endl;
x.cpy(y);
cout << x.get() << "\t" << y.get() << endl;
getch();
}
我想在上面的代码为什么我能够访问x.i
[线路19],它是在不同object.Isn't一个私有成员的私人范围限定在同一个类即使知道该对象作为参数传递?
想一想,如果不允许的话,你的例子会是多么丑陋的一个常见任务。 'private'的意义不在于限制来自“foreign”_objects_的访问,而是要封装_code_。而且类中的代码根本不关心任何一个特定对象,除了隐式传递给每个非静态成员函数的'this'指针。 – leftaroundabout