当前位置: 首页 > news >正文

附近广告公司地址快速优化seo

附近广告公司地址,快速优化seo,网站营销设计,昆明seo外包理解c中关键字友元friend的作用 friend 关键字在 C 中用于声明一个函数或类为另一个类的友元。 友元函数或友元类可以访问该类的私有(private)和保护(protected)成员。 友元函数 作用: 允许非成员函数访问私有成员&…

理解c++中关键字友元friend的作用

friend 关键字在 C++ 中用于声明一个函数或类为另一个类的友元。
友元函数或友元类可以访问该类的私有(private)和保护(protected)成员。

友元函数

作用:
允许非成员函数访问私有成员:
如果一个函数被声明为某个类的友元,它可以直接访问该类的私有(private)和保护成员(protected)

如果成员函数没有被声明为friend,则该函数体内无法访问类内私有成员

#include<iostream>
class MyClass {
private:int value;
public://默认构造函数MyClass(int v) : value(v){}//声明函数,没有用友元声明,这样该函数内无法访问类内私有成员void printValue(const MyClass& obj);
};//定义函数
void printValue(const MyClass &obj) {//该函数调用对象obj的私有成员value//由于该函数在声明时没有被friend修饰了,所以此函数体内无法访问类内私有成员std::cout<< "Value:"<< obj.value << std::endl;
}
int main() {MyClass obj(42);printValue(obj);return 0;
}


我们把printValue函数用friend声明,这样该函数体内就能访问类的私有成员了

#include<iostream>
class MyClass {
private:int value;
public://默认构造函数MyClass(int v) : value(v){}//声明友元函数friend void printValue(const MyClass& obj);
};//定义函数
void printValue(const MyClass &obj) {//该函数调用对象obj的私有成员value//由于该函数在声明时被friend修饰了,所以此函数体内可以访问类内私有成员std::cout<< "Value:"<< obj.value << std::endl;
}
int main() {MyClass obj(42);printValue(obj);return 0;
}

注意:
友元破坏了封装性,应谨慎使用。
友元关系是单向的,且不能传递。例如,A 是 B 的友元,但 B 不是 A 的友元。

友元类

#include <iostream>// 前向声明
class FriendClass;class MainClass {
private:int privateValue;public:MainClass(int value) : privateValue(value) {}// 声明FriendClass为友元类friend class FriendClass;void display() {std::cout << "MainClass的privateValue: " << privateValue << std::endl;}
};// 友元类
class FriendClass {
public:void accessPrivateData(const MainClass& obj) {// 可以直接访问MainClass的私有成员std::cout << "FriendClass访问MainClass的privateValue: " << obj.privateValue << std::endl;}void modifyPrivateData(MainClass& obj, int newValue) {// 可以修改MainClass的私有成员obj.privateValue = newValue;std::cout << "FriendClass修改了MainClass的privateValue为: " << obj.privateValue << std::endl;}
};int main() {MainClass mainObj(42);mainObj.display();FriendClass friendObj;friendObj.accessPrivateData(mainObj);friendObj.modifyPrivateData(mainObj, 100);mainObj.display();return 0;
}

这个例子中,MainClass通过friend class FriendClass;语句将FriendClass声明为友元类,因此FriendClass的所有成员函数都可以直接访问MainClass的私有成员privateValue。
注意,友元关系是单向的,FriendClass可以访问MainClass的私有成员,但MainClass不能访问FriendClass的私有成员。

http://www.dtcms.com/a/415104.html

相关文章:

  • 文心大模型4.5:百度推出的新一代原生多模态基础大模型
  • 厦门网站推广费用广西网站建设银行
  • 今日面试之项目拷打:锁与事务的深度解析
  • 基于IMX6ULL 芯片 UART1
  • Coze源码分析-资源库-删除数据库-后端源码-基础设施/数据存储层
  • 多后端服务器架构解析
  • 四种常用SVC(service)及其与Ingress协作方式
  • C#多线程全家桶:从Thread到async/await
  • 网站备案 论坛甘肃微信网站建设
  • 数模之路获奖总结——数据分析交流(R语言)
  • 网站 后台 数据 下载网站优化软件推荐
  • Java数据结构第二十七期:布隆过滤器,用 “模糊” 换高效的查重黑科技
  • 怎么做质量高的网站如何实现网站建设服务
  • 我的项目开发的一般流程,供交流
  • 做网站实名认证有什么用濮阳市城乡一体化示范区主任
  • InnoDB压缩技术:节省空间提升性能
  • 国任保险携手云轴科技ZStack获评鼎新杯数字化转型应用典型案例
  • 进入网站wordpress配置如何在百度搜到自己的网站
  • 建设银行网站怎么看不见余额专业类网站
  • qq登录网站授权怎么做外贸自建站平台哪个好
  • 红豆杉发展前景与培育技术(英文翻译稿)
  • 虾皮后端一面
  • 网站的新闻模块怎么做公司网络推广营销
  • 自己做刷东西的网站百度地图电脑版网页
  • 【开题答辩全过程】以 spb+疾病风险预警平台的设计与实现为例,包含答辩的问题和答案
  • 北京做百度网站有免费建网站
  • 国外的电商网站这么攻击网站
  • 新手卖家做来赞达网站如何如何用wordpress站群
  • string(1),咕咕咕
  • 网络安全基础--第六课:MySQL基础