新闻详情

新闻详情

首页 / 资讯中心 / 详情

类和对象(五)

发布时间:2026/9/30 9:31:15来源:尧图网络
类和对象(五)
在 C 的面向对象编程中封装是三大特性之一它通过访问限定符public、protected、private来控制类成员的可见性从而保护数据安全。然而在某些场景下我们需要让特定的函数或类能够访问类的私有成员这时 C 提供了friend友元机制来打破封装的限制。此外类的嵌套定义内部类和匿名对象也是 C 中常见且实用的语法特性。本文将围绕友元、内部类和匿名对象三个主题展开通过代码示例帮助读者理解它们的用法、特点与注意事项。友元对于一个类来说成员访问限定符可以很好地保护类中某些成员不被外部访问但存在一个特殊的关键字friend。它放在函数或类的前面用来声明该函数或类是该类的友元函数或友元类。classA{//类B是类A的友元类friendclassB;//友元函数friendvoidSwap(Aa);public:A(inta11,inta21):_a1(a1),_a2(a2){;}private:int_a1;int_a2;};该友元函数和友元类可以无视成员访问限定符直接访问该类的所有成员。voidSwap(Aa){inttmpa._a1;a._a1a._a2;a._a2tmp;}classB{public:B(Aa):_b1(a._a1),_b2(a._a2){;}private:int_b1;int_b2;};就像朋友一样声明Swap函数和类 B是类 A的朋友它们就可以访问类 A的所有成员了。这是一种单向关系类A的友元是类B类B可以直接访问类A的所有成员但类A不能直接访问类B中的所有成员。此外友元也不具有传递性类A的友元是类B类B的友元是类C但不能说类A的友元是类C。友元的使用会破坏类封装性增强耦合度所以尽量少用。内部类内部类就是在类中封装一个类它具有以下特点内部类和外部类是两个独立的类互不干扰也不影响各自类大小。内部类默认为外部类的友元类。内部类受到外部类的访问限定符限制。比如我在类A内封装一个类B。classA{friendvoidSwap(Aa);public:A(inta11,inta21):_a1(a1),_a2(a2){;}//内部类classB{public:B(Aa):_b1(a._a1),_b2(a._a2){;}private:int_b1;int_b2;};private:int_a1;int_a2;};受到public限定符影响类 B 可以被外部访问但需要通过类域查找。A::Bb1(A a1);//实例化类B对象也可以将类B限定为类A的专有类。匿名对象我们可以通过类来实例化出对象此外还有一种实例化实例化出的是匿名对象它的使用如下classA{public:A(inta11,inta22):_a1(a1),_a2(a2){;}private:int_a1;int_a2;};intmain(){A a;//实例化对象A();//匿名对象A(10,20);//匿名对象return0;}匿名对象的生命周期只到当前行为止。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

DeepSeek本地部署+私有知识库:基于Ollama的RAG全流程实战 2026/9/30 10:21:23

DeepSeek本地部署+私有知识库:基于Ollama的RAG全流程实战

折腾了一个周末,终于把 DeepSeek 本地跑起来了,而且不是只跑一个能聊天的模型,是把它和私有知识库串成了一条完整的问答链路。核心工具就是 Ollama 加一套 RAG 流水线,中间踩了三个特别典型的坑:模型服务进程直接崩掉、…

阅读更多 →
微信开源知识库项目落地指南:RAG原理、部署与调优实战 2026/9/30 10:21:23

微信开源知识库项目落地指南:RAG原理、部署与调优实战

微信团队开源的这版“知识库”项目,我拿到源码和文档后,前后折腾了差不多一周,才把一套可用的RAG知识库完整跑通。说实话,这两年开源的知识库项目并不少,但能做到“文档解析、向量检索、大模型问答、权限管理、可视化后…

阅读更多 →
计算机组成原理第2章课后习题答案:数据表示与运算解题流水线 2026/9/30 10:21:22

计算机组成原理第2章课后习题答案:数据表示与运算解题流水线

带过几届学生的助教之后,我对《计算机组成原理(微课版)》这门课的"难点分布"算是摸得比较透了。第 1 章那种概述性质的题目,基本靠背就能拿分;真正让人在自习室坐到熄灯的,永远是第 2 章——数据…

阅读更多 →
基于卷积神经网络的鲜茶叶分选:从模型选型到产线部署的工程实践 2026/9/30 10:21:22

基于卷积神经网络的鲜茶叶分选:从模型选型到产线部署的工程实践

简介:这份PDF文献面向从事茶叶加工、智能装备研发及计算机视觉应用的研究人员与工程技术人员,聚焦机采鲜茶叶中单芽、一芽一叶、一芽二叶、一芽三叶、单片叶与叶梗难以精确细分的问题,给出了一套结合计算机视觉与深度学习的智能分选系统方案。…

阅读更多 →
大模型落地实战:6+1+3混合模型矩阵与四层智能体架构设计 2026/9/30 10:21:22

大模型落地实战:6+1+3混合模型矩阵与四层智能体架构设计

大模型项目做多了,你会发现一个特别扎心的规律:单靠一个“大而全”的模型,根本撑不起一个真正能落地的生产系统。不是模型能力不够,而是成本、延迟、安全、并发这些问题拧在一起,逼着你把“模型”拆成“模型体系”&…

阅读更多 →
开源AI中台部署运行实战:从显存核算到K8s与vLLM落地 2026/9/30 10:21:11

开源AI中台部署运行实战:从显存核算到K8s与vLLM落地

1. 先把"中台"的边界划清楚:能力盘点决定技术栈走向聊开源AI中台的部署运行之前,我习惯先泼一盆冷水:绝大多数团队栽跟头,不是因为技术难,而是因为一开始就没搞清楚自己要的是"模型仓库"还是"…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉