这不会破坏封装吗?
乙:
class B{
int x, y;
public:
B() : x(1), y(1) {}
B(const B& obj) : x(obj.x), y(obj.y) {}
int getx();
int gety();
friend void pass_private_members(B&);
};
B.cpp
void non_friend_pass_private_members(int& x);
int B::getx(){
return this->x;
}
int B::gety(){
return this->y;
}
void pass_private_members(B& obj){
non_friend_pass_private_members(obj.x);
}
void non_friend_pass_private_members(int& x){
x++;
}
主文件
int main(){
B obj;
pass_private_members(obj);
cout << obj.getx() << endl;
return 0;
}