在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
友元是一种定义在类外部的普通函数或类,但它须要在类体内进行说明,为了与该类的成员函数加以差别,在说明时前面加以keywordfriend。 友元不是成员函数,可是它能够訪问类中的私有成员。 友元的作用在于提高程序的执行效率。可是,它破坏了类的封装性和隐藏性,使得非成员函数能够訪问类的私有成员。 有两种形式的友元: (1)友元函数:普通函数对一个訪问某个类中的私有或保护成员。 (2)友元类:类A中的成员函数訪问类B中的私有或保护成员。 在类声明的不论什么区域中声明,而定义则在类的外部。 friend <类型><友元函数名>(<參数表>); 演示样例: class A { public: A(int _a):a(_a){}; friend int getA_a(A &_classA);//友元函数 private: int a; }; int getA_a(A &_classA) { return _classA.a;//通过对象名訪问私有变量 } int _tmain(int argc, _TCHAR* argv[]) { A _classA(3); std::cout<<getA_a(_classA);//友元函数仅仅是普通函数。能够在随意地方调用 return 0; }须要注意的是: (1)友元函数不是类成员函数,没有this指针。 友元类:能够理解为:类B的全部成员函数都为类A的友元函数,则类B为类A的友元类。 friend class <友元类名>; 演示样例: class girl; class boy { public: void disp(girl &); }; void boy::disp(girl &x) //函数disp()为类boy的成员函数。也是类girl的友元函数 { cout<<"girl's name is:"<<x.name<<",age:"<<x.age<<endl;//借助友元,在boy的成员函数disp中,借助girl的对象,直接訪问girl的私有变量 } class girl { private: char *name; int age; friend boy; //声明类boy是类girl的友元 }; 须要注意的是,友元类没有继承性和传递性 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论