18. 友元-二、全局函数做友元

时间:2024-11-08 12:41:12

  新建一个 house.h 头文件,用来保存类的声明:

#pragma once
#include <iostream>

using namespace std;

class House
{
    // goodFriend()全局函数是House类的友元,可以访问House类的私有成员
    friend void goodFriend(House * house);
public:
    string living_room;

private:
    string bedroom;

public:
    House(void);
};

  新建一个 house.cpp 源文件,用来实现构造方法和成员方法:

#include "house.h"

using namespace std;

House::House(void) : living_room("客厅"), bedroom("卧室") {}

  在包含 main() 函数的文件中包含刚才定义的头文件,然后使用。

#include <iostream>
#include "house.cpp"

using namespace std;

// 全局函数
void goodFriend(House * house)
{
    cout << "好朋友正在访问你的:" << house->living_room << endl;
    cout << "好朋友正在访问你的:" << house->bedroom << endl;
}

int main(void)
{
    House house;
    goodFriend(&house);

    return 0;
}