news 2026/4/16 17:20:19

C++之友元

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++之友元

文章目录

  • 友元函数
  • 友元类
  • 友元成员函数
  • 类的封装具有信息隐藏能力,但也带来了访问效率的问题
  • c++通过友元给某些函数一项特权,可以访问类中的私有成员,使用的关键字是friend

友元函数

  • 友元函数可以直接访问类的私有成员
classX{friendTf(...);// 声明f为X类的友元...};Tf(...){}//友元不是类的成员函数

友元类

  • 一个类可以是另一个类的友元,友元类的所有成员函数都是另一个类的友元函数,能够直接访问另一个类的所有成员
#include<iostream>usingnamespacestd;classA{private:intx,y;public:A(inti,intj){x=i;y=j;}intgetx(void){returnx;}intgety(void){returny;}friendclassB;//声明B是A的友元类};classB{private:intz;public:B(inti=0){z=i;}intadd(constA&a){returna.x+a.y+z;}intsub(constA&a){returna.x-a.y-z;}};intmain(void){Aa(2,3);Bb(4);cout<<b.add(a)<<endl;cout<<b.sub(a)<<endl;return0;}
  • 友元类不是双向的:B是A的友元类, 不意味着A也是B的友元类

友元成员函数

  • 对一个类,可以指定它的某个成员函数是另一个类的友元,也就是友元成员函数
#include<iostream>usingnamespacestd;classB{private:intz;public:B(inti=0){z=i;}intadd(constA&);intsub(constA&);};classA{private:intx,y;public:A(inti,intj){x=i;y=j;}intgetx(void){returnx;}intgety(void){returny;}//friend class B; //声明B是A的友元类friendintB::add(constA&a);};intB::add(constA&a){returna.x+a.y+z;}intB::sub(constA&a){// return a.x - a.y - z;}intmain(void){Aa(2,3);Bb(4);cout<<b.add(a)<<endl;cout<<b.sub(a)<<endl;return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 7:48:16

C++之单例模式

文章目录饿汉式懒汉式单例模式(Singleton Pattern&#xff0c;也称为单件模式)&#xff0c;使用最广泛的设计模式之一。其意图是保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点&#xff0c;该实例被所有程序模块共享面向对象编程中&#xff0c;每个对象都应该…

作者头像 李华
网站建设 2026/4/16 9:20:57

RAG大模型智能客服:从架构设计到生产环境部署的实战指南

背景痛点&#xff1a;传统客服的“老毛病” 做ToB客服的同学都懂&#xff0c;最怕的不是用户问题多&#xff0c;而是“知识库又过期了”。 规则引擎&#xff1a;写一条规则要三天&#xff0c;用户换种问法就“404”&#xff1b;纯生成式LLM&#xff1a;满嘴跑火车&#xff0c…

作者头像 李华
网站建设 2026/4/16 1:20:34

基于CompVis SVD基础模型的图生视频效率优化实战

基于CompVis SVD基础模型的图生视频效率优化实战 摘要&#xff1a;本文针对CompVis SVD基础模型在图像生成视频任务中的计算效率瓶颈&#xff0c;提出一套完整的优化方案。通过模型量化、显存优化和流水线并行等技术&#xff0c;在保证生成质量的前提下显著提升推理速度。读者将…

作者头像 李华
网站建设 2026/4/15 22:31:50

ChatTTS中文整合包实战:从零构建高效语音合成流水线

背景痛点&#xff1a;中文TTS的三座大山 做中文语音合成最怕什么&#xff1f; 模型太多&#xff1a;声学模型、声码器、韵律预测器各自为政&#xff0c;一个服务里塞三四个权重文件&#xff0c;显存直接飙到8 GB。流式卡顿&#xff1a;FastSpeech2HiFi-GAN的经典组合&#xf…

作者头像 李华
网站建设 2026/4/16 9:20:33

Docker日志集中管理避坑指南(27日闭环实践):从driver选型、缓冲区溢出到时序错乱的17个致命陷阱

第一章&#xff1a;Docker日志集中管理的27日闭环实践全景图 在生产环境中&#xff0c;Docker容器日志分散、生命周期短、格式不统一&#xff0c;极易导致故障定位滞后与审计失效。我们以27天为一个完整实践周期&#xff0c;构建从日志采集、传输、存储、分析到告警反馈的端到端…

作者头像 李华