宁波市网站建设wordpress侧栏文本

张小明 2026/1/8 21:58:16
宁波市网站建设,wordpress侧栏文本,wordpress 好的插件,wordpress需要多大数据库#x1f9d1;‍#x1f4bb; C 友元#xff08;friend#xff09;到底是什么#xff1f;好基友才能进卧室#xff01; 大家好#xff01;今天我们来聊一个 C 中既实用又有点“特别”的概念 —— 友元#xff08;friend#xff09;。 如果你刚学完封装、访问控制‍ C 友元friend到底是什么好基友才能进卧室大家好今天我们来聊一个 C 中既实用又有点“特别”的概念 ——友元friend。如果你刚学完封装、访问控制public / private可能会觉得“私有成员只能类内部访问那外面就完全不能碰了吗”别急C 给我们留了一扇“后门”——友元。它就像你家的卧室private虽然一般外人不能进但你可以特许你的好闺蜜、好基友进去 生活中的类比客厅public谁都能进。卧室private只有你自己能进。但如果你信任某个朋友你可以给他/她一把钥匙 —— 这就是友元在 C 中友元可以让某些特定的函数或类访问另一个类的私有private成员。关键字只有一个friend✨ 友元的三种实现方式1️⃣ 全局函数做友元class Building { //告诉编译器 goodGay全局函数 是 Building类的好朋友可以访问类中的私有内容 friend void goodGay(Building * building); public: Building() { this-m_SittingRoom 客厅; this-m_BedRoom 卧室; } public: string m_SittingRoom; //客厅 private: string m_BedRoom; //卧室 }; void goodGay(Building * building) { cout 好基友正在访问 building-m_SittingRoom endl; cout 好基友正在访问 building-m_BedRoom endl; } void test01() { Building b; goodGay(b); } int main(){ test01(); system(pause); return 0; }✅goodGay是一个普通函数但它被声明为Building的友元所以能直接访问m_BedRoom2️⃣ 类做友元class Building; class goodGay { public: goodGay(); void visit(); private: Building *building; }; class Building { //告诉编译器 goodGay类是Building类的好朋友可以访问到Building类中私有内容 friend class goodGay; public: Building(); public: string m_SittingRoom; //客厅 private: string m_BedRoom;//卧室 }; Building::Building() { this-m_SittingRoom 客厅; this-m_BedRoom 卧室; } goodGay::goodGay() { building new Building; } void goodGay::visit() { cout 好基友正在访问 building-m_SittingRoom endl; cout 好基友正在访问 building-m_BedRoom endl; } void test01() { goodGay gg; gg.visit(); } int main(){ test01(); system(pause); return 0; }✅ 整个goodGay类都被授权访问Building的私有成员3️⃣ 成员函数做友元class Building; class goodGay { public: goodGay(); void visit(); //只让visit函数作为Building的好朋友可以访问Building中私有内容 void visit2(); private: Building *building; }; class Building { //告诉编译器 goodGay类中的visit成员函数 是Building好朋友可以访问私有内容 friend void goodGay::visit(); public: Building(); public: string m_SittingRoom; //客厅 private: string m_BedRoom;//卧室 }; Building::Building() { this-m_SittingRoom 客厅; this-m_BedRoom 卧室; } goodGay::goodGay() { building new Building; } void goodGay::visit() { cout 好基友正在访问 building-m_SittingRoom endl; cout 好基友正在访问 building-m_BedRoom endl; } void goodGay::visit2() { cout 好基友正在访问 building-m_SittingRoom endl; //cout 好基友正在访问 building-m_BedRoom endl; } void test01() { goodGay gg; gg.visit(); } int main(){ test01(); system(pause); return 0; }✅ 注意这里只有visit()是友元visit2()就不能访问m_BedRoom—— 精准授权安全又灵活⚠️ 使用友元的小提醒友元破坏了封装性所以不要滥用它是 C 提供的一种“特例机制”用于在必要时突破访问限制。常用于操作符重载、工具函数、测试代码等场景。 总结类型谁能访问私有成员全局函数做友元指定的全局函数类做友元整个友元类的所有成员成员函数做友元仅指定的那个成员函数记住友元不是成员函数但它拥有“特权” 学完这篇是不是对friend更清楚了快去试试写自己的“好基友”吧 如果你觉得这篇文章对你有帮助欢迎点赞、在看、转发给正在学 C 的小伙伴我们下期见
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站做管制户外刀具网站外部链接建设

第一章:揭秘Open-AutoGLM调用第三方AI模型的核心机制Open-AutoGLM 是一个面向自动化自然语言处理任务的开源框架,其核心能力之一是灵活集成并调用多种第三方AI模型。该机制基于标准化接口设计,通过抽象通信协议与模型适配层,实现对…

张小明 2026/1/6 22:25:23 网站建设

陕西城乡住房建设厅网站如何做响应式布局网站

PyTorch-CUDA-v2.9镜像支持舰船航行避障 在智能船舶逐渐从“辅助驾驶”迈向“自主航行”的今天,如何让一艘船在复杂水域中像老水手一样灵活避让来往船只、浮标甚至漂浮垃圾,成为技术攻坚的核心命题。传统基于规则的避障系统面对动态海洋环境常常束手无策…

张小明 2026/1/6 23:04:58 网站建设

access做调查表网站wordpress怎么改模板

用ESP32打造真正的智能灯:从零开始的实战全记录你有没有过这样的体验?晚上躺在床上,突然想起客厅的灯没关。起身去关吧,太麻烦;忍着不管吧,又总觉得浪费电。这其实是传统照明系统最典型的痛点——控制滞后、…

张小明 2026/1/6 23:35:26 网站建设

网站制作公司前十排名大型网站系统架构

Book Searcher跨平台桌面应用完整打包指南:从源码到发布的专业实践 【免费下载链接】bs-core Easy and blazing-fast book searcher, create and search your private library. 项目地址: https://gitcode.com/gh_mirrors/bs/bs-core 桌面应用打包是现代软件…

张小明 2026/1/6 23:37:14 网站建设

满天星建设网站wordpress转html

第一章:C 语言 CUDA 版本适配 在使用 C 语言开发高性能 GPU 应用时,CUDA 版本的适配至关重要。不同版本的 NVIDIA CUDA Toolkit 对编译器、驱动和硬件架构的支持存在差异,若未正确匹配,可能导致编译失败或运行时错误。 环境依赖检…

张小明 2026/1/6 23:44:18 网站建设

怎么用WordPress快速建站群晖里的wordpress如何删除

Xenia GPU模拟器深度解析:从架构设计到实战应用的全方位指南 【免费下载链接】xenia Xbox 360 Emulator Research Project 项目地址: https://gitcode.com/gh_mirrors/xe/xenia Xenia GPU模拟器作为Xbox 360游戏模拟研究的杰出代表,在图形渲染技术…

张小明 2026/1/6 23:46:01 网站建设