Morisummer.. 2022-10-01 10:47 采纳率: 85.2%
浏览 22
已结题

成员函数做友元的出现未申明问题


#include<iostream>
#include<string>
using namespace std;

class Building;
class Person
{
public:
    Person();

    void visit01()
    {
        cout << "参观的是:" << house->m_Livingroom << endl;
    }

    void visit02();
private:
    Building *house;
};
class Building
{
    friend void Person::visit02();
public:
    string m_Livingroom = "客厅";
private:
    string m_Bedroom = "卧室";
};

Person::Person()
{
    house = new Building;
}

void Person::visit02()
{
    cout << "参观的是:" << house->m_Bedroom << endl;
}

void test01()
{
    Person Tony;
    Tony.visit01();
    Tony.visit02();
}

int main()
{
    test01();
    return 0;
}

img

问题二:

#include<iostream>
#include<string>
using namespace std;

class Building;
class Person
{
public:
    Person();
    void visit01();
    void visit02();
private:
    Building *house;
    house = new Building;
};
class Building
{
    friend void Person::visit02();
public:
    string m_Livingroom = "客厅";
private:
    string m_Bedroom = "卧室";
};

Person::Person()
{
    
}
void Person::visit01()
{
    cout << "Tony参观的是:" << house->m_Livingroom << endl;
}
void Person::visit02()
{
    cout << "Tony参观的是:" << house->m_Bedroom << endl;
}

void test01()
{
    Person Tony;
    Tony.visit01();
    Tony.visit02();
}

int main()
{
    test01();
    return 0;
}

img


为什么这里的new语句在13,14行使用就报错,在Person的构造函数中使用就没问题

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 已结题 (查看结题原因) 10月8日
    • 修改了问题 10月1日
    • 修改了问题 10月1日
    • 创建了问题 10月1日

    悬赏问题

    • ¥15 数据库原理及应用上机练习题
    • ¥30 征集Python提取PDF文字属性的代码
    • ¥15 如何联系真正的开发者而非公司
    • ¥15 有偿求苍穹外卖环境配置
    • ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,
    • ¥20 Ue4.26打包win64bit报错,如何解决?(语言-c++)
    • ¥15 clousx6整点报时指令怎么写
    • ¥30 远程帮我安装软件及库文件
    • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
    • ¥20 (求远程解决)深信服vpn-2050这台设备如何配置才能成功联网?