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

郑州网站建设html5重庆网页优化seo公司

郑州网站建设html5,重庆网页优化seo公司,东昌网站建设公司,免费cad图纸下载网在C中#xff0c;在某些情况下#xff0c;允许特定的非成员函数访问一个类的私有成员#xff0c;同时仍然阻止一般的访问#xff0c;这是很方便做到的。例如#xff0c;被重载的操作符#xff0c;如输入或输出操作符#xff0c;经常需要访问类的私有数据成员。这些操作符…在C中在某些情况下允许特定的非成员函数访问一个类的私有成员同时仍然阻止一般的访问这是很方便做到的。例如被重载的操作符如输入或输出操作符经常需要访问类的私有数据成员。这些操作符不可能为类的成员。然而尽管不是类的成员它们仍是类的“接口的组成部分”。而友元机制允许一个类将对其非公有成员的访问权授予指定的函数或类。友元的声明以关键字 friend 开始。它只能出现在类定义的内部。友元声明可以出现在类中的任何地方友元不是授予友元关系的那个类的成员所以它们不受声明出现部分的访问控制影响。下面给出C中所有有关友元的结论和限制然后后面针对每个细节给出示例1、友元关系1.1将一个非成员函数reset()声明为类example的友元函数使得该非成员函数可以访问类example的私有成员。class example; // 这里必须对类 example 做前向声明否则下面的函数声明将报错void reset(example e);class example{public:friend void reset(class example e);private:int n;};// 该函数定义必须放在类 example 的后面否则无法解析变量nvoid reset(example e){e.n 0;}1.2 将类man声明为类woman的友元类使得可以通过类man对象访问类woman的私有成员。class woman; // 前向声明class man{public:void disp(woman w);void reset(woman w);};class woman{public:friend class man; // 将man设为woman的友元类这样man对象的任何成员函数都可以访问woman的私有成员private:string name;};void man::disp(woman w){cout w.name endl;}void man::reset(woman w){w.name.clear();}1.3 将一个类Y的某成员函数声明为类X的友元函数使得可以通过类Y的这个成员函数访问类X的私有成员。class woman; // 前向声明class man{public:void disp(woman w);void reset(woman w);};class woman{public:friend void man::disp(woman w); // 将man的其中一个成员函数disp()设为woman的友元函数就可以使用该函数访                                         // 问woman对象的私有成员了private:string name;};void man::disp(woman w){cout w.name endl;}// man的reset()成员函数不是woman类的友元函数因此不能访问其私有成员/*void man::reset(woman w){w.name.clear();}*/2、友元作用域注意到上面的示例代码友元声明和友元定义之间的依赖关系比如最后一个例子由于woman类要声明man类中的成员函数disp为友元函数因此必须将man类的定义放在woman之前。但是man类中又要对woman类中的数据成员进行操作所以必须将disp函数的定义放在woman的后面。这个关系要搞清楚否则编译不成功。3、友元跟重载函数的关系如果有多个重载函数的版本那么可以将其中的一个或者几个设为某个类的友元。其他的函数不受此设置的影响依然不能访问某类的私有数据成员。例如#include #include #include using namespace std;class screen;void show(const screen s);void show(int, int, const screen );class screen{public:screen():x(0.0), y(0.0){}friend void show(const screen s);friend void show(int a, int b, const screen s); // 如果将此行删除将无法调用该版本的show函数private:float x;float y;};void show(const screen s){cout s.x , s.y endl;}void show(int a, int b, const screen s){cout s.x a , s.y b endl;}int main(void){screen s;show(s);show(100, 200, s);string word;getline(cin, word);return 0;}4、友元跟权限标识符的关系实际上一个类的友元不管是友元类、友元成员函数还是友元非成员函数都必须是public访问权限的否则无法在类外被调用。
http://www.zqtcl.cn/news/98229/

相关文章:

  • 网站建设500错误代码网站文章超链接怎么做
  • 网站建设尺寸凡科建站弊端
  • 企业网站建设模板多少钱在哪里建网站免费
  • 盐城网站建设咨询优秀vi设计
  • 网站里面内外链接如何做北京pk10网站建设
  • 网站布局策划的流程百度知道入口
  • 个人网站设计毕业设计论文上海百度seo优化
  • 展台设计网站都有哪些拓者设计吧手机版
  • 河南省级建设主管部门网站免费推广平台哪个好
  • wordpress禁止自动升级seo实战密码怎么样
  • 福永网站建设公司如何利用个人nas做网站
  • 北京网站seo外包wordpress心情
  • 租用服务器一般是谁帮助维护网站安全网站如何看是哪家公司做的
  • 戴尔网站建设的特点开创者wordpress素材
  • 网站假设公司排名不用囤货
  • 有关网站建设合同织梦珠宝网站模板
  • 月牙河做网站公司电商网站开发成本
  • iis7建立网站注册公司地址虚拟地址怎么申请
  • 响应式网站开发的想要去国外网站买东西怎么做
  • 网站建设开发有什么好处百度网盘0基础网站开发教程
  • 桂林整站优化青岛网站制作哪里有
  • 织梦cms手机网站源码天天想你视频免费观看西瓜
  • 怎么做网站弄网盟邯郸超速云_网站建设
  • 桂阳做网站的软件定制开发外包wordpress电子商务插件
  • 10有免费建网站那些公司做网站比较厉害
  • 网站关键词优化推广旅游类网站开发开题报告范文
  • 官方网站营销拟在建项目信息网官网
  • 沈阳做微信和网站的公司湛江网站建设公司哪家好
  • 网站 开发逻辑电话销售电销系统
  • 有哪些做兼职的设计网站有哪些工作可以用asp做哪些网站