友元类和java的反射机制作用差不多,打破类的封装性。
#include "stdafx.h"
#include"iostream"
using namespace std;
class A {
private:
friend class B;
friend void modifyA(A *pA,
int _a);
int x;
public:
int getX() {
return this->x;
}
};
class B {
public:
void set(
int a) {
obj.x = a;
}
void print() {
cout << obj.x << endl;
}
private:
A obj;
};
void modifyA(A *pA,
int _a) {
pA->x = _a;
}
int main()
{
B objB;
objB.
set(
100);
A objA;
objB.print();
modifyA(&objA,
12);
cout << objA.getX()<< endl;
system(
"pause");
return 0;
}
转载请注明原文地址: https://ju.6miu.com/read-659561.html