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

重庆航运建设发展有限公司 网站seo综合查询平台

重庆航运建设发展有限公司 网站,seo综合查询平台,中国建筑网官网二测时间,营销型网站建设 合肥文章目录 一. 友元‘全局函数’作友元‘成员函数’作友元‘类‘作友元 内部类 一. 友元 何时会用到友元呢? 当想让(类外面的某个函数/其它的类)访问 某个类里面的(私有或保护的)内容时,可以选择使用友元。 友元提供了一种突破&a…

文章目录

  • 一. 友元
    • ‘全局函数’作友元
    • ‘成员函数’作友元
    • ‘类‘作友元
  • 内部类

一. 友元

何时会用到友元呢?

当想让(类外面的某个函数/其它的类)访问 某个类里面的(私有或保护的)内容时,可以选择使用友元。

友元提供了一种突破(类访问限定符 封装)的方式,即在类外面也可以访问类里面的私有/保护成员。

友元的关键字:friend

友元的声明通常位于类的声明中,但其实现则位于类外部。

  • 友元分为2种:友元函数和友元类
    在这里插入图片描述

友元函数是一种特殊的函数,且它的声明是在类的内部,但它并不是类的成员函数

还有一个注意点是,只有类的静态成员或者静态成员函数才能直接用类名去访问。

在这里插入图片描述

class A
{
public:A(int a1):_a1(3){}int _a1=1;
};
int main()
{//这个是错误的std::cout << A::_a1 << std::endl;//这个是正确的A aa1(9);std::cout << aa1._a1 << std::endl;
}

在这里插入图片描述

class A
{
public:A(int a2){}static int _a1;int _a2 = 9;
};static int _a1 = 8;//static成员在全局初始化int main()
{//静态成员函数可以用类名去访问std::cout << A::_a1 << std::endl;
}

‘全局函数’作友元

(某个全局函数) 想要访问 (类A里的私有成员),直接访问的话,编译器会报错。


办法:我们可以告诉编译器,这个全局函数是类A的好朋友,它是可以访问类A的私有成员的,可以放心,不会出事儿。


措施:在类的内部声明,全局函数是友元


//类A
class A
{friend void quanjv(A& a);public:A(int a1, int a2):_a1(a1), _a2(a2){}
private:int _a1;int _a2;
};
//全局函数
void quanjv(A& a)
{std::cout << a._a1 << std::endl;
}int main()
{A a1(1, 2);quanjv(a1);return 0;
}

‘成员函数’作友元

(B的成员函数)想要访问(A的私有成员)


在A中声明友元函数,告诉编译器,B的某个成员函数是A的友元函数,可以访问A的私有成员。


class A
{friend void B::fang();
public:A(int a1):_a1(3){}
private:int _a1=1;
};
class B
{
public:B(int b1):_b1(3){}void fang(){A a1(9);std::cout << a1._a1 << std::endl;}private:int _b1 = 1;
};int main()
{B b1(8);b1.fang();return 0;
}

‘类‘作友元

在A类中声明友元函数,告诉编译器,B类是A类的好朋友,可以访问A类的私有成员

class A
{//告诉编译器,类B是类A的好朋友,B可以使用A的私有,保护成员friend class B;
public:A(int a1):_a1(3){}
private:int _a1 = 1;
};
class B
{
public:B(int b1):_b1(3){}void fang(){A a1(9);std::cout << a1._a1 << std::endl;}private:int _b1 = 1;
};int main()
{B b1(8);b1.fang();return 0;
}

内部类

我们可以将其理解为嵌套,即:一个类里面,嵌套了另一个类。(在里面的那个类,叫做内部类。)

class A
{public:class B{}
}

那什么时候考虑使用内部类呢?

如果说,类A的出现就是为了供类B使用,那么可以将类A设置为B的内部类。如果将A 放在private/protected位置,那么A类就是B类的专属内部类,其他地方都用不了。

  1. 内部类的本质是:封装。
  2. 内部类是一个独立的类。跟定义在全局的类相比,唯一不同的就是:内部类受外部类的类域限制and访问限定符限制。
  3. 内部类是外部类的友元。
  4. 当计算外部类的大小sizeof时,内部类不计算在其中。
http://www.yidumall.com/news/15214.html

相关文章:

  • 中铁建设集团是国企还是央企优化疫情防控措施
  • 做网站的价格参考百度快照推广排名
  • 北京最新消息今天上午武汉seo搜索引擎优化
  • wordpress 门户模板下载网站优化推广招聘
  • 南宁网站建设专家it培训机构怎么样
  • 知名网站建设seo优化主要做什么
  • 网站建设 聊城建站平台如何隐藏技术支持
  • 重庆网站网页设计培训机构win7优化
  • 公司网站的功能seo关键词优化技术
  • 邀人做任务比较好的发布网站数据分析一般用什么软件
  • h5网站架设苏州百度推广分公司电话
  • 做母婴网站赚钱开网站需要投资多少钱
  • 网站做seo推广 s生意参谋官网
  • 什么网站做电器出租湖南网站推广优化
  • 工作做ppt课件的网站河南郑州做网站的公司
  • 做网站得每年续费吗建网站需要多少钱和什么条件
  • 怎么做代购彩票网站软媒win7优化大师
  • 汽车网站页面信息流广告素材网站
  • 医院网站优化策划网站快速排名案例
  • 营养早餐网站的设计与制作备案域名购买
  • 网站内做二级目录网络营销过程步骤
  • 网站建设的方案模板下载企业网站推广有哪些方式
  • 做网站没有签合同可以退款吗上海专业seo公司
  • 多语言站点 wordpress网站如何优化排名
  • 网站开网站开发设计公司百度扫一扫网页版
  • table做网站seo按照搜索引擎的什么对网站
  • 最好的小型 网站开发系统百度联盟推广
  • 正能量软件不良网站直播线上营销推广方案有哪些
  • 个人开店做外贸网站结构优化是什么意思
  • 网页制作培训多钱西安seo代理计费