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

石家庄做网站推广建设工程质量监督网站

石家庄做网站推广,建设工程质量监督网站,三水住房和城乡建设局的网站,软件设计师工资一般多少友元类的概念和使用 (1)将类A声明为B中的friend class后#xff0c;则A中所有成员函数都成为类B的友元函数了 (2)代码实战#xff1a;友元类的定义和使用友元类是单向的 (3)友元类是单向的#xff0c;代码实战验证 互为友元类 (1)2个类可以互为友元类#xff0c;代码实战…友元类的概念和使用 (1)将类A声明为B中的friend class后则A中所有成员函数都成为类B的友元函数了 (2)代码实战友元类的定义和使用友元类是单向的 (3)友元类是单向的代码实战验证 互为友元类 (1)2个类可以互为友元类代码实战验证 (2)互为友元类要注意互相引用的细节规则 (1)友元类其实就是批量制造友元函数 (2)友元类中所有全部成员都成为了友元函数相当于一次打了很多洞极大破坏了面向对象 (3)除非确实有必要否则建议按需定义友元函数尽量维护面向对象让代码更安全健壮 #include iostream #include stringclass Country; // Forward declaration of Country// External friend function declaration void disp_info_external(const Country ct);class InfoDisplayer {public:// Member function declarationvoid disp_info_member(const Country ct) const; };class InfoFriendClass {public:// Member function to display informationvoid display(const Country ct) const; };class Country {private:std::string privateName;protected:int protectedPopulation;public:std::string publicCapital;// ConstructorCountry(std::string name, int population, std::string capital): privateName(name),protectedPopulation(population),publicCapital(capital) {}// Friend function declarationfriend void disp_info_external(const Country ct);// friend void InfoDisplayer::disp_info_member(const Country ct);//error: no// declaration matches ‘void InfoDisplayer::disp_info_member(const Country)’friend class InfoFriendClass; // Friend class declaration };// Definition of the external friend function void disp_info_external(const Country ct) {std::cout disp_info_external Name: ct.privateName \n;std::cout disp_info_external Population: ct.protectedPopulation \n;std::cout disp_info_external Capital: ct.publicCapital \n; }// Definition of the member friend function void InfoDisplayer::disp_info_member(const Country ct) const {// std::cout disp_info_member Name: ct.privateName \n;// error: ‘int Country::protectedPopulation’ is protected within this context// std::cout disp_info_member Population: ct.protectedPopulation // \n; std::cout disp_info_member Capital: ct.publicCapital // \n; }// Definition of the friend class member function void InfoFriendClass::display(const Country ct) const {std::cout InfoFriendClass Name: ct.privateName \n;std::cout InfoFriendClass Population: ct.protectedPopulation \n;std::cout InfoFriendClass Capital: ct.publicCapital \n; }int test070401() {// Create an object of CountryCountry myCountry(Wonderland, 5000000, Magic City);// Display information using the external friend functiondisp_info_external(myCountry);// Create an object of InfoDisplayerInfoDisplayer displayer;// Display information using the member friend functiondisplayer.disp_info_member(myCountry);// Create an object of InfoFriendClassInfoFriendClass friendClass;// Display information using the friend class member functionfriendClass.display(myCountry);return 0; } #include iostream #include stringclass Vegetable; // Forward declaration of Vegetableclass Fruit {private:std::string name;protected:std::string color;public:// ConstructorFruit(std::string n, std::string c) : name(n), color(c) {}// Friend class declarationfriend class Vegetable;// Definition of the friend functionvoid displayVegetable(const Vegetable veg); };class Vegetable {private:std::string name;protected:std::string color;public:// ConstructorVegetable(std::string n, std::string c) : name(n), color(c) {}// Friend class declarationfriend class Fruit;// Member function declarationvoid displayFruit(const Fruit fruit) const {std::cout Vegetable accessing Fruits name: fruit.name \n;std::cout Vegetable accessing Fruits color: fruit.color \n;} };void Fruit::displayVegetable(const Vegetable veg) {std::cout Fruit accessing Vegetables name: veg.name \n;std::cout Fruit accessing Vegetables color: veg.color \n; }int test070402() {// Create objects of Fruit and VegetableFruit apple(Apple, Red);Vegetable spinach(Spinach, Green);apple.displayVegetable(spinach);// Display information using the member function of Vegetablespinach.displayFruit(apple);return 0; } 为什么会有友元函数 使用友元函数的优缺点 (1)缺点破坏了封装机制尽量不使用友元函数不得已才使用友元函数 (2)优点在实现类之间数据共享时减少系统开销提高效率。 使用友元函数的两种情况 (1)运算符重载的某些场合需要使用友元 (2)两个类要共享数据的时候 两个类如何共享数据 (1)类内的数据其实就是类的成员变量 (2)2个类共享数据方法1将共享数据访问权限设置为public。 (3)2个类共享数据方法2通过第三个专门封装数据的类和2个类中带参数的成员函数来传参共享 (4)2个类共享数据方法3通过友元函数打洞 友元函数和类的成员函数的区别 (1)成员函数有this指针而友元函数没有this指针。为什么因为友元只是朋友并不是类内“自家人” (2)友元函数是不能被继承的就像父亲的朋友未必是儿子的朋友。 (3)友元关系不具有传递性。类B是类A的友元类C是B的友元类C不一定是类A的友元要看类中是否有相应的声明 共有友元函数 (1)1个函数同时成为2个类的友元函数 (2)共有友元函数可以是外部函数也可以是某个第3个类的成员函数 (3)共有友元函数内可同时访问2个类的受保护成员间接将2个完全无关的类的数据打通了 总结 有元函数是单向的 两个类可以互为有元类、可以相互拥有有元方法 C编译器在寻找运算符函数时找的自己内部的函数有就用显示实现的函数没有的话就使用默认实现的有元函数是外部函数就不太编译器寻找范围内 学习记录侵权联系删除。 来源朱老师物联网大课堂
http://www.hkea.cn/news/14462421/

相关文章:

  • 8网站免费建站公司网站招聘模板
  • 桂林网站建设动服卖照明电源设响应式装饰设计公司网站源码
  • 低代码平台app优化推广
  • 南昌电子商务网站建设网站建设公司找博行
  • 衡阳网站优化外包首选官网后台管理系统
  • 建网站教程视频下载如何让广域网访问利用公网ip和本地服务器建设的网站
  • 网站建设优化服务资讯建网站岑溪哪家强?
  • 东莞企业网站咨询wordpress怎么设置404伪静态
  • 网站建设企业名录网站建设调研论文
  • 义乌制作网站公司网做网站
  • 查看网站是由什么开源做的h5源码下载
  • 做网站动态效果心得做百度推广怎么做才能有电话
  • 民治做网站公司去黄山旅游攻略和费用是多少
  • 设计的网站有哪些医疗器械网站素材
  • 台山网站建设公司新余网站开发公司
  • c2c网站建设要多少钱大学生旅游网站设计框架
  • 网站模板做网站凡科网站怎么样
  • 做板材外贸一般用哪个网站工业和信息化部电信设备认证中心
  • 做网站什么样的域名好珠海高端网站建设
  • 在网站后台管理系统里产品说明怎么添加图片企业网站背景图片
  • 一个网站后台怎么做小规模企业所得税优惠政策
  • 宁波网站推广怎样做成都建设企业网站
  • 网站内容上传doooor设计网app
  • 企业为什么建立企业网站免费模版网站
  • 网站建设培训费用打开搜索引擎
  • 高端型网站企业网站seo诊断工具
  • 郑州网站推广公司地址wordpress搭建子网站
  • 酒类销售公司的网站建设wordpress主题module破解版
  • 网站开发设计jw100logo设计免费平台
  • 联邦快递的网站建设网站建设售后服务费包括哪些