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

cnnic可信网站必须做吗?江门网络建站模板

cnnic可信网站必须做吗?,江门网络建站模板,下载app最新版,长沙网站设计优刻友元友元提供了一种突破封装的方式#xff0c;有时提供了便利。但是友元会增加耦合度#xff0c;破坏了封装#xff0c;所以 友元不宜多用。 友元分为#xff1a;友元函数和友元类友元函数问题现在尝试去在Date类里重载operator。无论怎样设置参数#xff0c;只要…友元 友元提供了一种突破封装的方式有时提供了便利。但是友元会增加耦合度破坏了封装所以 友元不宜多用。 友元分为友元函数和友元类 友元函数 问题现在尝试去在Date类里重载operator。无论怎样设置参数只要他是非静态成员函数它的第一个参数必定是隐含的this指针又因为操作数的顺序就是传入参数的顺序所以我们要使用这个运算符重载就必须datecout这不符合使用习惯。class Date { public: Date(int year, int month, int day): _year(year), _month(month), _day(day){} ostream operator(ostream _cout){_cout _year - _month - _day endl;return _cout;} private: int _year; int _month; int _day; };int main() {Date date(2002,7,11);datecout;// 因为成员函数第一个参数一定是隐藏的this所以date必须放在的左侧 //虽然结果正确但不符合正常使用的顺序 }使用显而易见可以想到的是我们把运算符重载作为类外函数而不是成员函数这样我们就可以随心调整参数的位置。然而这又引发了问题类外函数没有权限访问类内成员一般类成员变量都是私有也就没法打印日期信息了。友元函数解决了类外函数访问类内成员的权限问题 class Date {friend ostream operator(ostream _cout, const Date d);//声明友元函数 public:Date(int year 1900, int month 1, int day 1): _year(year), _month(month), _day(day){} private:int _year;int _month;int _day; }; ostream operator(ostream _cout, const Date d) {_cout d._year - d._month - d._day;return _cout; }int main() {Date date;cout date endl;return 0; }在一个类内使用friend声明一个函数这个函数就叫做这个类的友元函数可以访问类内的所有成员就像成员函数一样实际上不是。特性友元函数可访问类的私有和保护成员但不是类的成员函数 友元函数不能用const修饰指的是用const修饰函数也就是修饰this指针友元函数可以在类定义的任何地方声明不受类访问限定符限制 一个函数可以是多个类的友元函数 友元函数的调用与普通函数的调用原理相同友元类 使用 class Time {friend class Date;// 声明日期类为时间类的友元类则在日期类中就直接访问Time类中的私有成员变量 public:Time(int hour 0, int minute 0, int second 0): _hour(hour), _minute(minute), _second(second){}private:int _hour;int _minute;int _second; };class Date { public:Date(int year 1900, int month 1, int day 1): _year(year), _month(month), _day(day){}void SetTimeOfDate(int hour, int minute, int second){// 直接访问时间类私有的成员变量_t._hour hour;_t._minute minute;_t._second second;}private:int _year;int _month;int _day;Time _t; };特性友元类的所有成员函数都可以是另一个类的友元函数都可以访问另一个类中的非公有成员。 友元特性友元关系是单向的不具有交换性。 比如上述Time类和Date类在Time类中声明Date类为其友元类那么可以在Date类中直接 访问Time类的私有成员变量但想在Time类中访问Date类中私有的成员变量则不行。 友元关系不能传递。如果C是B的友元 B是A的友元则不能说明C时A的友元。 友元关系不能继承。
http://www.zqtcl.cn/news/908030/

相关文章:

  • 南京网站建设公司哪家好设计教程网站有哪些
  • 网页和网站做哪个好用吗陕西陕煤建设集团有限公司网站
  • 网站建设系统优势设计欣赏
  • 河北省网站建设东莞网站开发哪家好
  • php做学校网站免费苏州网站建设的公司
  • 网站做rss+wordpresswordpress动漫插件
  • wordpress更新网站内容公众号制作教程
  • 复兴区建设局网站怎么解压wordpress
  • 资源网站哪个好淄博网站设计
  • 网站建设林晓东网站数据库一般多大
  • 织梦网站后台默认登陆路径网站建设简介淄博
  • 重庆住房建设部网站东莞网站制作多少钱
  • 做胎儿羊水鉴定网站网站管理主要包括哪些内容
  • 公司网站建设应注意网店推广有哪些方法
  • 新网$网站优化企业资源管理软件
  • 甘肃营销型网站制作网页设计流程的图片
  • 厦门成交型网站建设公司今科云平台网站建设
  • 网站推广效果怎样学电商赚钱
  • 企业网站的一般要素包括哪些公司网站建设是什么费用
  • 网站收录说明长沙知名的营销公司
  • 网站开发 业务流程图天津网站排名方案
  • 风雨同舟网站建设小说网站如何做书源
  • h5手机网站建设哪家好广州有什么好玩的地方和风景好
  • 北京哪个网站建设最好怀化网站建设公司
  • 做类似猪八戒网的网站注册一个商标多少钱
  • 怎么提高网站访问速度wordpress怎么备份按在
  • 淘宝网站是谁做的好处wordpress商业授权
  • 淘宝客网站怎么批量采集淘宝商品方维采集淘宝数据思路珠宝类网站建设
  • 重庆网站关键字优化雅布设计中国分公司在哪里
  • 山西做网站费用温州做网站制作