首页 > 编程 > C++ > 正文

c++友元类

2019-11-09 18:38:25
字体:
来源:转载
供稿:网友

友元类和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;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选