美文网首页
C++——2-14友元

C++——2-14友元

作者: 赋闲 | 来源:发表于2017-02-20 11:21 被阅读0次
    #ifndef BOY_H
    #define BOY_H
    
    #include <iostream>
    #include <string>
    #include "Girl.h"
    
    using namespace std;
    
    class Boy
    {
    public:
        Boy(){}
        Boy(string name, string phone, string face);
    
        string m_strFace;
        //若将一个类申明为友元,
        //则在该类所有函数中都可以访问Boy的私有数据
        friend class Girl;
        //若将一个类中的某个成员函数申明为友元
        //则只能在该函数中访问Boy的私有数据
        //friend void Girl::getBoyName(Boy &boy);
    
        //友元函数
        //在友元函数可以通过对象直接访问和操作该对象的私有数据
        //友元破坏了类的封装性,尽量不要用
        friend void fun(Boy &boy);
    
    private:
        string m_strName;
        string m_strPhone;
    };
    void fun(Boy &boy);
    
    #endif
    
    #ifndef GIRL_H
    #define GIRL_H
    
    #include <iostream>
    #include <string>
    
    
    using namespace std;
    
    class Boy;
    
    class Girl
    {
    public:
        void getBoyName(Boy &boy);
        void getBoyPhone(Boy &boy);
    };
    
    #endif
    
    #include "Girl.h"
    #include "boy.h"
    
    void Girl::getBoyName(Boy &boy)
    {
        cout << boy.m_strName << endl;
    }
    void Girl::getBoyPhone(Boy &boy)
    {
        cout << boy.m_strPhone << endl;
    }
    

    相关文章

      网友评论

          本文标题:C++——2-14友元

          本文链接:https://www.haomeiwen.com/subject/xsrfwttx.html