Java教程

成员函数做友元函数

本文主要是介绍成员函数做友元函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

成员函数做友元函数

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

//只让Visit可以作为友元函数 Visit2不可以
class House;    //先声明,防止报错
class GoodGay
{
public:
    GoodGay();        //类内声明
    void Visit();        //类内声明
    void Visit2();        //类内声明
    House * h;
};
class House
{
    friend void GoodGay::Visit();    //成员函数作为友元函数,要加上作用域
public:
    House();            //类内声明
    string m_SittingRoom;
private:
    string m_BedRoom;
};
GoodGay::GoodGay()            // 类外实现构造函数 好基友类的构造函数,创建House对象
{
    this->h = new House;
}
void GoodGay::Visit()        //类外实现成员函数 注意 返回值要与声明的一致
{
    cout << "好基友正在访问:" << this->h->m_SittingRoom << endl;
    cout << "好基友正在访问:" << this->h->m_BedRoom << endl;
}

void GoodGay::Visit2()        //类外实现成员函数 注意 返回值要与声明的一致
{
    cout << "好基友正在访问:" << this->h->m_SittingRoom << endl;
    cout << "好基友正在访问:" << this->h->m_BedRoom << endl; //error
}
House::House()
{
    this->m_SittingRoom = "客厅";
    this->m_BedRoom = "卧室";
}

int main()
{
    system("Pause");        //阻塞功能
    return EXIT_SUCCESS;    // 返回正常退出
}

只有Visit能访问私有属性

 

这篇关于成员函数做友元函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!