友元类和java的反射机制作用差不多,打破类的封装性。
#include "stdafx.h"#include"iostream"using namespace std;class A {PRivate: friend class B; //B类是A的友元,在B中可以访问A类的私有成员 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; //创建一个A类对象,B类中也产生了A类对象 objB.print(); modifyA(&objA,12);//友元函数修改A对象的私有属性 cout << objA.getX()<< endl; system("pause"); return 0;}新闻热点
疑难解答
图片精选