Persi111 2023-05-24 23:29 采纳率: 85.7%
浏览 14
已结题

为什么已经建了友元,visit()函数还是不能访问m_bedRoom


#include <iostream>
#include<string>
using namespace std;
class building;
class goodgay {
public:
    goodgay() {
        b = new building;
    }
    building* b;

    void visit() {
        cout << "好基友正在访问:" << b->m_bedRoom << endl;
    };

};
class building {
    friend void goodgay::visit();//建立类内成员函数的友元
public:
    building() {
        m_bedRoom = "卧室";
        m_sittingRoom = "客厅";
    }
    string m_sittingRoom;
private:
    string m_bedRoom;
};

int main()
{
    
}
  • 写回答

2条回答 默认 最新

  • 小果沐雨 2023-05-26 16:18
    关注

    建议参数传递

    #include <iostream>
    #include<string>
    using namespace std;
    
    class building;
    
    class goodgay {
    public:
        goodgay(){}
        void visit(building* pb);
    };
    
    class building {
        friend void goodgay::visit(building* pb);//建立类内成员函数的友元
    public:
        building() {
            m_bedRoom = "卧室";
            m_sittingRoom = "客厅";
        }
        string m_sittingRoom;
    private:
        string m_bedRoom;
    };
    
    void goodgay::visit(building* pb)
    {
        cout << "好基友正在访问:" << pb->m_bedRoom << endl;
    };
    
    int main()
    {
        goodgay gay;
        building b;
        gay.visit(&b);
        
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月3日
  • 已采纳回答 5月26日
  • 创建了问题 5月24日