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

h5做网站页面设计工作内容自述

h5做网站,页面设计工作内容自述,广东住房和城乡建设局网站,济南建网站哪家好本文主要介绍面向对象编程的友元的使用#xff0c;以及友元的特性和分类#xff0c;提供C代码。 1 为什么引进友元 面向对象编程#xff08;OOP#xff09;的三大特性中的封装#xff0c;是通过类实现对数据的隐藏和封装。一般定义类的成员变量为私有成员#xff0c;成员… 本文主要介绍面向对象编程的友元的使用以及友元的特性和分类提供C代码。 1 为什么引进友元 面向对象编程OOP的三大特性中的封装是通过类实现对数据的隐藏和封装。一般定义类的成员变量为私有成员成员函数为公有函数通过公有函数作为类的接口实现与外部交互。一些情况下类外的某些函数需要频繁访问类的成员变量因此引入了友元的概念将类外的函数定义为该类的友元函数从而实现对该类私有成员的访问。由此还引入友元类就是一个类是另一个类的友元类友元类可以访问另一个类的所有成员。友元函数和友元类称为友元。 友元的作用是提高了程序的运行效率减少了类型检查和安全检查的耗时但是友元破坏了类的封装和隐藏性让非类成员函数可以类的私有成员。  友元是C语言中的一种关系友元关系发生在函数与类之间或者类与类之间。友元关系是单向的不能传递。 与类有友元关系的函数称为友元函数与类有友元关系的类称为友元类。 2 友元的性质 1在被访问类中以friend关键字修饰友元类或者友元函数 2友元不属于该类且不受该类的访问限制可以直接访问具体类的所有成员 3友元关系不能被继承 4友元关系是单向的不具有交换性只能是一个函数访问一个类的所有成员或者一个类允许访问另一个类的所有成员反之不行 5友元关系不具有传递性 3 友元的本质 友元的本质是提供不属于该类成员包括全局函数、其他类的成员函数、其他类访问本类所有成员和成员属性的属性。 4 友元分类 4.1 全局函数为友元函数 全局函数拥有访问一个类所有成员的能力需要在被访问类中用关键字friend声明f被访问类的友元函数。一个类可以拥有多个友元函数。一个函数也可以是多个类的友元函数。 代码如下 #include iostream #include string using namespace std;class A {private:string name_;int age_;public:A(const string name,const int age) : name_(name), age_(age) {cout A构造函数 初始化参数 endl;};virtual ~A(){cout A析构函数 endl;}void func(){std::cout As func() std::endl;}friend void get_members_global(A a); // 友元全局函数可以访问A的私有成员变量和所有的公有成员};// 全局函数作为友元函数 void get_members_global(A a) {cout a.name_ is a.age_ years old endl;a.func(); }int main() {A a(Hubery,45);cout ***************************全局函数作为友元函数*************************** endl;get_members_global(a);return 0; }运行结果 4.2 类的成员函数为友元函数 类成员函数作为类的友元声明时只需在友元的名称前加上关键字friend其格式如下 friend 类型 类名::函数名(形式参数); 一个函数可以是多个类的友元函数只需要在各个类中分别声明。 代码如下 #include iostream #include string using namespace std;class A;class C {public://类的成员函数作为友元函数void get_members_member(A a);C(){cout C构造函数 endl;}~C(){cout C析构函数 endl;} };class A {private:string name_;int age_;public:A(const string name,const int age) : name_(name), age_(age) {cout A构造函数 初始化参数 endl;};virtual ~A(){cout A析构函数 endl;}void func(){std::cout As func() std::endl;}friend void C::get_members_member(A a); // C的成员函数做友元函数可以访问所有成员};// 类的成员函数作为友元函数 void C::get_members_member(A a) {cout a.name_ is a.age_ years old endl;a.func(); }int main() {A a(Hubery,45);C c;cout ***************************类的成员函数作为友元函数*************************** endl;c.get_members_member(a);return 0; }运行结果 这里用到类的前向声明。前向声明是一种不完全型forward declaration声明即只需提供类名(无需提供类实现)即可。前向声明功能有限:         (1不能定义类的对象。       2可以用于定义指向这个类型的指针或引用。       3用于声明(不是定义)使用该类型作为形参或者返回类型的函数。 4.3 类作为友元 友元类的所有成员函数都是另一个类的友元函数都可以访问另一个类中的隐藏信息包括私有成员和保护成员。当希望一个类可以访问另一个类的私有成员、保护成员时可以将该类声明为另一类的友元类。 定义友元类的语句格式如下 friend class 类名; friend和class是关键字类名必须是程序中的一个已定义的类。 代码如下 #include iostream #include string using namespace std;class B; // 前向声明class A {private:string name_;int age_;public:A(const string name,const int age) : name_(name), age_(age) {cout A构造函数 初始化参数 endl;};virtual ~A(){cout A析构函数 endl;}void func(){std::cout As func() std::endl;}friend class B; // 声明B为A的友元类B中成员函数可以访问A中所有的成员};class B {private:string name_;int age_;public:B(const string name,const int age) : name_(name), age_(age) {cout B构造函数 初始化参数 endl;};virtual ~B(){cout B析构函数 endl;}void func(){std::cout Bs func() std::endl;};// 友元类void get_members_class(A a){cout a.name_ is a.age_ years old endl;a.func();};};int main() {A a(Hubery,45);B b(Tom,24);cout ***************************友元类*************************** endl;b.get_members_class(a);return 0; }运行结果
http://www.sadfv.cn/news/328077/

相关文章:

  • 网站的收费标准应用网站制作
  • 网站建设工程师 html5汕头seo优化
  • 好网站开发培训个人网站怎么做详情页
  • 提示危险网站顺的网站建设策划
  • 怎样上传网站到空间外贸网站建设电话
  • 松江做网站价格软件项目管理的内容
  • 爱做网站视频深圳网络推广营销公司
  • 做网站需要提供的资料家居公司网站建设方案ppt
  • 开发什么网站好河北省建设厅注册中心网站首页
  • 科技平台网站建设商城站时刻表
  • 道里网站运营培训鲜花网网站开发的目标
  • 怎么查询网站建设时间郑州招聘网站有哪些
  • 什么公司需要建立网站吗济南seo的排名优化
  • 手机网站 win8风格wordpress图片体积
  • 建设银行总部投诉网站网站 掌握
  • wordpress 三站合一长沙企业网络营销手段
  • 购物网站详细设计域名能免费申请吗
  • 河南省住房和建设厅门户网站网站 权重
  • 各大网站网址是多少ps怎么下载永久免费版
  • 美肤宝网站建设免费聊天的十大软件
  • 教人做窗帘的视频网站建工网查询
  • 网站建设中模版教育网站制作定制
  • 网站app充值记账凭证怎么做wordpress 查看文章id
  • 长沙高端网站建设服务网站频繁被攻击怎么办
  • dede 网站目录泰安网络推广seo
  • 做一个企业的网站怎么做的绚丽网站
  • 吉安做网站wordpress 监控应用
  • 做二手房需要用到哪些网站搜集房源室内设计招标网站
  • 购物网站模板html广东高端网站设计公司
  • 建立网站的方式wordpress做成仿阿里巴巴