8-成员函数做友元

简介: 8-成员函数做友元
#include<bits/stdc++.h>
using namespace std; 
class Building;
class GoodGay{
  public:
    GoodGay();//初始化构造函数
    void visit();//让visit函数可以访问Building中的私有成员
    void visit2();//让visit2函数不能访问Building中的私有成员
    Building *building ;
};
class Building{
  friend void GoodGay::visit();//告诉编译器 GoodGay类下的visit函数作为本类的好朋友 
  public:
    Building();//初始化构造函数 
  public:
    string m_SittingRoom;
  private:
    string m_BedRoom;
};
//类外实现成员函数 
Building::Building(){
  m_SittingRoom="客厅";
  m_BedRoom="卧室"; 
}
GoodGay::GoodGay(){
  building =new Building;
}
void GoodGay::visit(){
  cout<<"visit函数正在访问: "<<building->m_SittingRoom<<endl;
  cout<<"visit函数正在访问: "<<building->m_BedRoom<<endl;
}
void GoodGay::visit2(){
  cout<<"visit2函数正在访问: "<<building->m_SittingRoom<<endl;
  //cout<<"visit2函数正在访问: "<<building->m_BedRoom<<endl;
}
void test01(){
  GoodGay gg;
  gg.visit();
  gg.visit2();
}
int main()
{
  //成员函数做友元 
  test01();
  return 0;
 } 


相关文章
|
8月前
|
编译器 程序员
成员函数
成员函数
|
8月前
|
存储 C语言 C++
37.【C/C++ 静态数据成员和静态成员函数 (超详解)】
37.【C/C++ 静态数据成员和静态成员函数 (超详解)】
49 0
|
4天前
友元函数、成员函数和普通函数使用上的不同
友元函数、成员函数和普通函数使用上的不同
7 0
|
4天前
|
编译器 C++
27类的成员函数
27类的成员函数
16 0
|
8月前
|
编译器 C++
C++中虚继承时的构造函数
在虚继承中,虚基类是由最终的派生类初始化的,换句话说,最终派生类的构造函数必须要调用虚基类的构造函数。对最终的派生类来说,虚基类是间接基类,而不是直接基类。这跟普通继承不同,在普通继承中,派生类构造函数中只能调用直接基类的构造函数,不能调用间接基类的。 下面我们以菱形继承为例来演示构造函数的调用: #include <iostream> using namespace std; //虚基类A class A{ public: A(int a); protected: int m_a; }; A:
57 1
运算符重载的函数作为类的成员函数和友元函数
🐰运算符重载的函数作为类的成员函数和友元函数 🌸运算符重载定义为类的成员函数 🌸运算符重载函数作为类的友元函数 🌸实现“+”,“-“的普通重载函数和友元重载函数 🌸单目运算符"++"和"--"的重载
【C++之成员函数】类外定义成员函数
【C++之成员函数】类外定义成员函数
|
编译器 C++
C++类和对象【2】—— 对象特性(构造函数、析构函数、拷贝构造函数、深浅拷贝、初始化列表、类对象作为成员类、静态成员变量及静态成员函数等。)
C++类和对象【2】—— 对象特性(构造函数、析构函数、拷贝构造函数、深浅拷贝、初始化列表、类对象作为成员类、静态成员变量及静态成员函数等。)
137 0
C++类和对象【2】—— 对象特性(构造函数、析构函数、拷贝构造函数、深浅拷贝、初始化列表、类对象作为成员类、静态成员变量及静态成员函数等。)
|
C++
C++类-成员,成员函数,构造函数,析构函数
C++类-成员,成员函数,构造函数,析构函数
127 0
派生类构造函数和析构函数详解
派生类构造函数和析构函数详解