zoukankan      html  css  js  c++  java
  • C++之:友元类

    一、文章来由

    上一篇写了友元函数,这一次写一个姊妹篇,继续深入探究一下友元类。

    二、定义

    友元类的全部成员函数都是还有一个类的友元函数。都能够訪问还有一个类中的隐藏信息(包含私有成员和保护成员)。

    当希望一个类能够存取还有一个类的私有成员时,能够将该类声明为还有一类的友元类。定义友元类的语句格式例如以下:

    friend class 类名;

    当中:friend和class是关键字,类名必须是程序中的一个已定义过的类。

    三、样例

    #include <iostream>
    using namespace std;
    
    class Radius
    {
        friend class Circle;   //声明Circle为Radius的友元类
        friend void Show_r(Radius &n);     //声明Show_r为友元函数
    
    public:
    Radius(int x)
    {
        r = x;
    }
    ~Radius()
    {
    }
    
    private:
        int r;
    };
    
    void Show_r(Radius &n)
    {
        cout<<"圆的半径为: "<<n.r<<endl;    //调用Radius对象的私有成员变量r
    }
    
    class Circle
    {
    public:
        Circle(){}
        ~Circle(){}
    
    double area(Radius a)
    {
        s = a.r * a.r * 3.1415926;             //调用Radius对象的私有成员变量r
        return s;
    }
    
    private:
        double s;
    };
    
    int main(int argc, char *argv[])
    {
        Radius objRadius(9);
        Circle objCircle;
    
        Show_r( objRadius );
        cout<<"面积为:"<<objCircle.area(objRadius)<<endl;
    
        return 0;
    }
  • 相关阅读:
    CentOS命令找不到
    Docker原理之rootfs
    Docker原理之Namespace
    Docker原理之Cgroups
    Docker目录
    Docker基本使用
    Linux命令之防火墙
    Linux命令目录
    Rancher之主机添加
    oracle-decode函数用法
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/7092543.html
Copyright © 2011-2022 走看看