首页 > 其他分享 >友元函数/类

友元函数/类

时间:2023-02-25 09:33:52浏览次数:35  
标签:友元 Box 函数 void box BigBox width printWidth

在类中添加友元,相当于安插了一个卧底,可以访问类内元素,如下

class Box
{
    double width;
public:
    friend void printWidth(Box box);
    friend class BigBox;
    void setWidth(double wid);
};

class BigBox
{
public :
    void Print(int width, Box &box)
    {
        // BigBox是Box的友元类,它可以直接访问Box类的任何成员
        box.setWidth(width);
        cout << "Width of box : " << box.width << endl;
    }
};

因为Box类中添加友类BigBox,所以BigBox可以访问Box类的任何成员   

 

class Box
{
   double width;
public:
   friend void printWidth( Box box );
   void setWidth( double wid );
};
 
// 成员函数定义
void Box::setWidth( double wid )
{
    width = wid;
}
 
// 请注意:printWidth() 不是任何类的成员函数
void printWidth( Box box )
{
   /* 因为 printWidth() 是 Box 的友元,它可以直接访问该类的任何成员 */
   cout << "Width of box : " << box.width <<endl;
}

因为Box类中添加友函数printWidth,所以printWidth可以访问Box类中的box.width成员

标签:友元,Box,函数,void,box,BigBox,width,printWidth
From: https://www.cnblogs.com/toriyung/p/17153770.html

相关文章

  • c语言:辗转相除求最大公约数 函数
    #include<stdio.h>//求最大公约数:辗转相除法:辗转相除法是求两个自然数的最大公约数的一种方法,也叫欧几里德算法。//319377:319%377=319377%319=58319%58=2958%29=0......
  • C语言:更损相减法求最大公约数 函数应用
    #include<stdio.h>//<<九章算术>>更相减损法:可以用来求两个数的最大公约数,即“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。//以等数约之。///第......
  • 第122篇: JS函数一些基本概念
    好家伙,本篇为《JS高级程序设计》第十章“函数”学习笔记 1.函数的三种定义方式:函数表达式、函数声明及箭头函数函数声明:functionsum(a){returna+1;}......
  • python open函数
    open函数open 函数可以打开一个文件。超级简单吧?大多数时候,我们看到它这样被使用:f=open('photo.jpg','r+')jpgdata=f.read()f.close()我现在写这篇文章的原因,......
  • Rust - 安装环境、基本类型、流程控制、函数、模块、泛型、所有权
    安装环境、基本类型学习Rust语言是公司同事最先开始提议的,准备用接下来的项目试试水,Rust是一个强类型编译型语言,比较偏向底层,所以开启了Rust的探索之旅。环境准备阶段安......
  • 友元
    对于类内部的私有成员如果外部的函数想要直接访问类的私有成员是不合法的,而友元函数却能合法访问。 #include<iostream>#include<string>usingnamespacestd;c......
  • const修饰成员函数
    常函数:在成员函数后加const称为常函数常函数内部不能修改成员属性成员属性声明时添加mutable后,在常函数中依然可以修改  2.常对象声明对象时,在......
  • 理解JS函数之call,apply,bind
    前言在JavaScript中,apply、bind和call是三个重要的函数,它们都是Function.prototype的方法。这些函数可以让我们动态地改变函数的this值,或者传递参数来执行函数。......
  • hive:regexp_replace函数
    语法regexp_replace(subject,pattern,str)subject,pattern,str都为字符串subject为被替换的字符串pattern为正则表达式str需要替换的字符串实例SELECTaa......
  • 使用函数-单行函数
    ​ 使用函数-单行函数 2.数值函数(Math)    3.日期与时间函数         --单行函数包含:--1.字符串函数selectename,length(ena......