友元探秘

    xiaoxiao2021-03-25  102

    关于友元,我也忘了在哪儿看过一句话了,大意是说:如果设计良好的类,其实是不需要用到友元的。真是存在这样的偏见,让我几年来,看到友元相关的内容就直接跳过。 但是,最近在学习封装自己的容器和迭代器,让我觉得上面那句话所说的未免偏颇。 至此,将友元的内容整理后分享在此,希望大家与我交流。 一、友元函数

    void operateNumber(A& a) { a.m_num+=1; } class A :m_num(0) { public: friend void oprateNumber(A& a);//位置可以不固定,只要出现在类内就行 private: int m_num; } int main() { A a; operateNumber(a); system("pause"); return 0; }

    二、友元类

    //本例是讲述了一个悲伤的故事 class Girl; class Boy { public: void ToKnowGirl(Girl&); } void Boy::ToKnowGirl(Girl& girlName) { cout<<girlName.secrete<<endl; } class Girl :(secrete="I am lesbian") { private: std::string secrete; friend Boy; //声明Boy类为Girl类的友元类 } int main() { Girl JingJing; Boy An; An.ToKnowGirl(JingJing); system("pause"); return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-21328.html

    最新回复(0)