C++10

C++友元函数和友元类

一个类中可以有 public、protected、private 三种属性的成员,通过对象可以访问 public 成员,只有本类中的函数可以访问本类的 private 成员。现在,我们来补充介绍一个例外——友元(friend)。


fnend 的意思是朋友,或者说是好友,与好友的关系显然要比一般人亲密一些。有的家庭可能会这样处理:客厅对所有来客开放,而卧室除了本家庭的成员可以进人以外,还允许好朋友进入。在C++中,这种关系以关键宇 friend 声明,中文多译为友元。友元可以访问与其有好友关系的类中的私有成员,友元包括友元函数和友元类。如果您对友元这个名词不习惯,可以按原文 friend 理解为朋友即可。
友元函数


在当前类以外定义的、不属于当前类的函数也可以在类中声明,但要在前面加 friend 关键字,这样就构成了友元函数。友元函数可以是不属于任何类的非成员函数,也可以是其他类的成员函数。


友元函数可以访问当前类中的所有成员,包括 private 属性的。


1) 将普通函数声明为友元函数。
#include<iostream>
using namespace std;
class Student{
private:
    char *name;
    int age;
    float score;
public:
    Student(char*, int, float);
    friend void display(Student &);  //将display声明为友元函数
};
Stud

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/294187.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

box2d 绘制圆

在让刚体听我的——ApplyForce、ApplyImpulse、SetLinearVelocity一节中&#xff0c;来自天地会的sxl001问道如何创建圆形的边界(Round Boundary)&#xff0c;好吧&#xff0c;我用这个教程来回答他。 实际上Box2D中没有专门创建圆弧的API (b2CircleDef创建的是实体圆形不是圆弧…

linux浏览器不能播放音频文件夹,在html中插入音频文件在浏览器中播放音频文件的兼容性问题...

下面谈谈本人在html中插入音频文件&#xff0c;经过我的本地测试总结的一些问题(播放mp3文件)&#xff1a;1、问题&#xff1a;IE8上正常(通过media player插件来播放)但在IE6和IE7上不会播放Firefox上要安装QuickTime插件才能播放Chrome通过将其转化成html5上的标签播放&#…

如何让 Timer 在特定时间点触发?

咨询区 Behrooz Karjoo我的应用程序需要做一个 事件触发 的功能&#xff0c;它需要每天定时执行&#xff0c;比如说当天的 16点&#xff0c;我现在的做法是使用一个 timer 按秒轮询判断当前是否为 16:00&#xff0c; 虽然可以玩得转&#xff0c;但我想能不能实现那种 16:00 自动…

深入剖析Android系统

深入剖析Android系统&#xff08;基于Google发布的Jelly Bean原始代码&#xff0c;讲述Android系统的内部静态结构关系和内部运行机制&#xff0c;为你呈现原汁原味的Android代码分析大餐&#xff01;&#xff09; 杨长刚著 ISBN 978-7-121-19374-3 2013年1月出版 定价&#xf…

微博上的网红,为什么更能红得发紫?

“网红”是最近非常热潮的互联网现象。在微博上&#xff0c;各种各样的网红不仅活跃了粉丝群体&#xff08;微博月活跃用户增至2.61亿&#xff09;&#xff0c;也为微博增添了互动热度&#xff08;微博一季度微博日均视频播放量达4.7亿次&#xff0c;同比增长489%&#xff0c;比…

TotoiseSVN-小乌龟的使用方法总结

原文转自 http://www.cnblogs.com/xilentz/archive/2010/05/06/1728945.html 收藏起来用的时候比较方便 TotoiseSVN的基本使用方法在 项目管理实践教程一、工欲善其事&#xff0c;必先利其器【Basic Tools】中&#xff0c;我已经讲解了怎样安装TortoiseSVN。在上面的讲解中已经…

UNIX环境高级编程笔记

1.setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &opt, len); SO_REUSEADDR套接口选项允许为以下四个不同的目的提供服务&#xff1a; 一.SO_REUSEADDR允许启动一个监听服务器并捆绑其众所周知的端口&#xff0c;即使以前建立的将该端口用作它们的本地端口的连接仍存在。 …

linux重定向输出时加时间变量,shell 重定向错误输出到文件 加上时间(标明错误抛出的时间)...

在开发中&#xff0c;我们避免不了写crontab脚本来异步执行一些东西&#xff0c;一般设置crontab用下面的方法&#xff1a;*/1 * * * * commond > /tmp/t.log 2>&1前面的> /tmp/t.log代表把标准输出重定向到/tmp/t.log文件&#xff0c;后面的 2>&1 代表把标…

ping

一、Linux下的ping参数 ping [ -d] [ -D ] [ -n ] [ -q ] [ -r] [ -v] [ \ -R ] [ -a addr_family ] [ -c Count ] [ -w timeout ] [ -f | -i \ Wait ] [ -l Preload ] [ -p Pattern ] [ -s PacketSize ] [ -S hostname/IP addr ] \ [ -L ] [ - I a.b.c.d. ] [ -o interface ] …

WPF DataGrid 如何将被选中行带到视野中

WPF DataGrid 如何将被选中行带到视野中目录前言准备工作方法一方法二总结独立观察员 2021 年 12 月 11 日前言在 WPF 开发中&#xff0c;显示表格一般使用 DataGrid 控件&#xff0c;而且我们一般会依据用户的选中行的操作来执行一些逻辑&#xff0c;这种情况&#xff0c;选中…

Python 基础语法_Python脚本文件结构

前言 Python基础语法这一章&#xff0c;主要记录了Python的文件结构、逻辑运算符、算术操作符、控制流语句、输入和输出语句、函数、对象、类等方面的内容。在了解了Python的数据类型之后&#xff0c;结合之前的要点来一起继续学习。 软件环境 系统 UbuntuKylin 14.04软件 Pyth…

Andriod之import android.support.v4或者import android.support.v7提示导入错误解决办法

问题所在原因&#xff1a;少了v4.jar包 解决办法&#xff1a;给项目添加v4.jar包就行 在使用Eclipse开发andriod程序时&#xff0c;程序中提示import android.support.v4.XXX或者import android.support.v7.XXX出错&#xff0c;具体的提示信息是&#xff1a; The import andro…

e2200网卡驱动 linux,Linux驱动修炼之道-驱动中一些常见的宏

Linux驱动修炼之道-驱动中一些常见的宏努力成为linux kernel hacker的人李万鹏原创作品&#xff0c;为梦而战。转载请标明出处http://doc.xuehai.net/woshixingaaa/archive/2011/06/02/6462065.aspx本文档讲解一下驱动中常用的宏&#xff0c;下边一个一个来说&#xff0c;先声明…

一对经典的时间获取客户/服务器程序

前言 本文通过一对经典的时间获取客户/服务器程序&#xff0c;展现了Linux网络编程的大体框架&#xff0c;为以后更深入的学习打下基础。 客户服务器模式网络编程的大体框架 客户端代码 1 #include <stdio.h>2 // 下头文件包含socket(), bind()等套接字通信必须的函数。3…

SkyWalking8.1.0 部署和使用

一、简介1、官方文档https://github.com/apache/skywalking/tree/master/docs2、功能SkyWalking是一个可观测性分析平台和应用性能管理系统&#xff0c;提供分布式跟踪、服务网格遥测分析、度量聚合和可视化一体化解决方案&#xff0c;并支持多种开发语言。专为微服务、云原生架…

CGI编程学习

一&#xff0e;基本原理 CGI&#xff1a;通用网关接口&#xff08;Common Gateway Interface&#xff09;是一个Web服务器主机提供信息服务的标准接口。通过CGI接口&#xff0c;Web服务器就能够获取客户端提交的信息&#xff0c;转交给服务器端的CGI程序进行处理&#xff0c;最…

博古通今的孩子是怎么养成的?答案就在这本影响了无数中国人思想的奇书里……

▲ 点击查看“三十六计走为上计”这句话&#xff0c;相信是大家从小听到大的俗语了。除此之外&#xff0c;还有“抛砖引玉”、“顺手牵羊”、“借刀杀人”、“擒贼先擒王”等都出自经典兵书《三十六计》。《三十六计》是中国古代最伟大的兵法谋略书之一&#xff0c;集智慧韬略、…

jmeter(2)录制脚本

Jmeter脚本是以JMX格式为主 Jmeter也是支持录制的&#xff0c;支持第三方录制方式和代理录制方式。 1、第三方录制主要是通过badboy来录制&#xff0c;录制后另存为jmx格式即可。 2、Jmeter也有自己的代理&#xff0c;录制脚本前&#xff0c;我们只要启动好代理&#xff0c;手动…