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

迁安网站开发做网站用什么源码

迁安网站开发,做网站用什么源码,app展示主题wordpress,网络平台维护1.友元介绍 在C中#xff0c;友元#xff08;friend#xff09;是一种机制#xff0c;允许某个类或函数访问其他类的私有成员。通过友元#xff0c;可以授予其他类或函数对该类的私有成员的访问权限。友元关系在一些特定的情况下很有用#xff0c;例如在类之间共享数据或…1.友元介绍 在C中友元friend是一种机制允许某个类或函数访问其他类的私有成员。通过友元可以授予其他类或函数对该类的私有成员的访问权限。友元关系在一些特定的情况下很有用例如在类之间共享数据或实现特定的功能。 友元可以分为两种类型类友元和函数友元。 2.类友元 类友元Friend Class 可以将一个类声明为另一个类的友元。这样在被声明为友元的类中就可以直接访问另一个类的私有成员。 类友元关系在类之间共享数据或实现特定功能时很有用。 友元关系是单向的不具有传递性。如果类A是类B的友元类B不一定是类A的友元。 友元关系通常在类的声明部分使用 friend 关键字来声明。 2.1示例代码 class FriendClass { private:int privateData; public:FriendClass() : privateData(0) {}friend class OtherClass;  // 声明 OtherClass 是 FriendClass 的友元类 }; class OtherClass { public:void accessPrivateData(FriendClass obj) {obj.privateData 42;  // 可以直接访问 FriendClass 的私有成员} }; 3.函数友元 函数友元Friend Function 可以将一个函数声明为一个类的友元函数。这样在友元函数中可以直接访问该类的私有成员。 友元函数可以是非成员函数也可以是其他类的成员函数。 友元函数通常在类的声明部分或声明外部使用 friend 关键字来声明。3.1示例代码 class MyClass { private:int privateData; public:MyClass() : privateData(0) {}friend void friendFunction(MyClass obj);  // 声明 friendFunction 是 MyClass 的友元函数 }; void friendFunction(MyClass obj) {obj.privateData 42;  // 可以直接访问 MyClass 的私有成员 } 4.总结 友元的使用场景包括但不限于以下情况 当两个或多个类需要共享私有数据时可以使用类友元来实现数据的直接访问而无需通过公有接口。 当某个类需要提供特定函数或操作给其他类使用但这些函数需要访问类的私有成员时可以使用函数友元。 在重载运算符或实现某些特定功能时友元可以提供对类私有成员的直接访问。 需要注意的是友元机制破坏了封装性因为其他类或函数可以直接访问被授予友元权限的类的私有成员。因此应谨慎使用友元只在必要的情况下使用并且仅将其授予最少的访问权限。 在C中我们使用类对数据进行了隐藏和封装类的数据成员一般都定义为私有成员成员函数一般都定义为公有的以此提供类与外界的通讯接口。但是有时需要定义一些函数这些函数不是类的一部分但又需要频繁地访问类的数据成员这时可以将这些函数定义为该函数的友元函数。除了友元函数外还有友元类两者统称为友元。友元的作用是提高了程序的运行效率即减少了类型检查和安全性检查等都需要时间开销但它破坏了类的封装性和隐藏性使得非成员函数可以访问类的私有成员。 下面我们来看一段代码看看我们是如何利用友元来访问类的一切成员的 #include iostream using namespace std; class Internet { public: Internet(char *name,char *address) // 改为internet(const char *name , const char *address) { strcpy(Internet::name,name); strcpy(Internet::address,address); } friend void ShowN(Internet obj); //友元函数的声明 public:              // 改为private char name[20]; char address[20]; }; void ShowN(Internet obj) //类外普通函数定义访问a对象的保护成员name,不能写成,void Internet::ShowN(Internet obj) { coutobj.nameendl; //可访问internet类中的成员 } void main() { Internet a(谷歌,http://www.google.cn/;); ShowN(a); cin.get(); } 示例2分别定义一个类A和类B 各有一个私有整数成员变量通过构造函数初始化类A有一个成员函数Show(B b)用来打印A和B的私有成员变量请分别通过友元函数和友元类来实现此功能。使用友元类 和 友元函数实现 #include iostreamusing namespace std; class B; class A; void Show( A , B );class B { private: int tt; friend class A; friend void Show( A , B );public: B( int temp 100):tt ( temp ){}};class A { private: int value; friend void Show( A , B );public: A(int temp 200 ):value ( temp ){}void Show( B b ) {cout value endl;cout b.tt endl; } };void Show( A a, B b ) { cout a.value endl; cout b .tt endl; }int main() { A a; B b; a.Show( b ); Show( a, b );return 0; }
http://www.yutouwan.com/news/297462/

相关文章:

  • 如何用dw做旅游网站目录wordpress3.9.x
  • 华为云建站视频教程建筑资建设库网站缺陷
  • 网站集约化建设纪要信息流网站建设
  • 用c做网站深圳品牌网站建设公司
  • 做图片类型网站需要什么服务器wordpress 小蘑菇
  • 搜网站的关键词上海公司网页设计
  • 怎么看网站开发语言是哪种福州seo排名收费
  • 用dw做音乐网站从化网站建设方案
  • 一般网站建设需要多少钱做网站一万
  • 网站流量50g织梦网站做seo优化
  • 网站开发语言学习C 吗传奇手游下载
  • 无锡建设局评职称网站电子商务网站建设实训论文
  • 山西省轻工建设有限责网站安阳吧
  • 校园网站建设经费申请报告wordpress 插件交互
  • 重庆建一个网站大概要多少钱南昌做网站和微信小程序的公司
  • 上海网站开发公司排名中国建设银行的网站用户名是什么
  • 郑州网站seo公司网站添加在线支付功能
  • 美耐皿 技术支持 东莞网站建设全国最新网站备案查询
  • 厦门服装企业网站推广如何建设一个属于自己的网站
  • 泉州自助建站系统网站备案换主体
  • 网站建设投资预算八戒影视大全
  • 东山网站建设广西区建设厅网站
  • 菏泽城乡住房建设局网站高明网站建设首选公司
  • 心理咨询中心网站模板温州15000 做网站的工作
  • 湖南软件定制开发郑州网站建设seo优化
  • 网站建设包括哪些知识品牌建设成效
  • 手机版的学习网站网站建设人员培训纲要
  • 教做宝宝辅食的网站网站怎么做漂亮点
  • 做外贸有哪些网站比较好设计集团有限公司
  • 网站返利二维码怎么做济南做网站的中企