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

怎么弄数据库备份做网站如何快速搭建个人网站

怎么弄数据库备份做网站,如何快速搭建个人网站,微信商城开店步骤,wordpress帮助中心模板文章目录 友元内部类内部类是外部类的天生友元 匿名对象匿名对象的特性 拷贝对象时的一些编译器优化函数返回值临时空间的存储位置返回值临时空间具有常性 标题相同和不同类型 需要 临时空间 友元 友元函数 重载operator<< 输出自定义类型 比如日期类的这个重载&#xff…

文章目录

    • 友元
    • 内部类
      • 内部类是外部类的天生友元
    • 匿名对象
      • 匿名对象的特性
    • 拷贝对象时的一些编译器优化
      • 函数返回值临时空间的存储位置
      • 返回值临时空间具有常性
    • 标题相同和不同类型 需要 临时空间

友元

  1. 友元函数
    重载operator<< 输出自定义类型
    比如日期类的这个重载,就是解决类外访问私有变量的例子,设计成了友元函数。
    说明:
    友元函数可访问类的私有和保护成员,但不是类的成员函数
    友元函数不能用const修饰 (没有this指针,无法修饰)

  2. 友元类

    友元类的所有成员函数都可以是另一个类的友元函数,都可以访问另一个类中的非公有成员
    用法:

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;
};

内部类

概念:如果一个类定义在另一个类的内部,这个内部类就叫做内部类

  1. 问题:sizeof(A) = ?

在这里插入图片描述
回答:sizeof( A ) = 4
因为B在A的内部,其实他们之间没什么关系,只不过是B这个类型定义在A的类域里,没有B的实例化对象不占空间,类是图纸,如果A的成员变量里面 有个 B的实例化对象,那就占空间了。
static int k; 在静态区里,也不占空间。

class B 受访问限定符的控制,你可以公开权限,突破A类域生成B对象,如果是私有权限那么创建不了B对象
在这里插入图片描述
形象化:就是A是一个建筑图纸,那么B就是A图纸里面附赠的一份图纸

内部类是外部类的天生友元

在这里插入图片描述

匿名对象

例子1
在这里插入图片描述

A() 也可以这么写

例子2
在这里插入图片描述
这里面Solution().Sum_Solution(20)
我看了一开始也觉得奇怪,但是如果不加只剩类型,Solution.Sum_Solution(20)肯定无法调用
所以要加括号表明 是匿名对象

错误写法(不加括号):

在这里插入图片描述

这里又回溯回之前 类创建对象时为什么不加括号的问题:
原因:默认构造初始化对象 不能写成 Solution s1();的原因是 无法区分是函数还是初始化对象

在这里插入图片描述

匿名对象的特性

匿名对象生命周期在当前行
用引用强行续命,延长了生命周期在当前局部域
匿名对象具有常性(和临时空间一样具有常性)
在这里插入图片描述

拷贝对象时的一些编译器优化

不同编译器对连续构造的优化不同, Linux下优化可能更加极致

拷贝构造+拷贝构造 ->优化为拷贝构造

构造+拷贝构造 ->优化为构造

如图看到连续的构造尽量写到一行,避免分开写更麻烦同时也干扰了编译器优化,导致效率变低(没有写成一行导致没有优化)
在这里插入图片描述

函数返回值临时空间的存储位置

函数传值返回,如果返回的对象很大,那么它所保存在的临时空间是在哪里呢? 答:返回对象时内置类型时,一般都是通过寄存器来带回返回值的,返回对象如果时较大的对象时,一般会在主调函数的栈帧中开辟一块空间,然后把这块空间的地址,隐式传递给被调函数,在被调函数中通过地址找到主调函数中预留的空间,将返回值直接保存到主调函数的。 具体可以参考《程序员的自我修养》一书的第10章。

在这里插入图片描述
知道了保存在了主调函数,也就是main函数里,那么可以解释一下析构的顺序:
按理说在一个函数内创建对象 是符合栈规则后进先出,但是这个情况是临时空间先入的栈,只不过是后拷贝构造,Func3()里的A aa其实在栈中临时空间的上面(函数栈帧中把栈倒了过来向上增长,其实实际是向下增长),那么自然就是先析构A aa,后再析构临时空间
在这里插入图片描述

返回值临时空间具有常性

const A&  ra  = Func5();

既然临时空间保存在了主调函数,加了const是临时空间具有常性。生命周期也在局部范围,如果没有使用这块临时空间它也会在这一行结束生命,也算是一种续命了。
在这里插入图片描述

标题相同和不同类型 需要 临时空间

http://www.yayakq.cn/news/199079/

相关文章:

  • 东营网站建设预算价格公司名称大全两个字
  • 做的网站老是掉线站长论坛 激活网站
  • 卖网格布怎样做网站俄罗斯网站制作
  • 怎么投诉做网站的公司安阳 做网站
  • 网站推广优化趋势跨境电商开店详细步骤
  • 建设银行境外购物网站网站建设的认识
  • 苏州餐饮 网站建设建设网站建设费用
  • 外贸那些网站好用适应 分辨率 网站
  • 简约门户网站源码百度网盘怎么找片
  • 如今做那些网站能致富建立简单的网站
  • 百度站长工具抓取诊断西安工程网站建设
  • 网站建设前期准备新手怎么做seo优化
  • google网站地图格式视频制作网
  • 如何查询网站备案时间查询程序员一般找哪种女人
  • dw做网站怎么设置页面音乐建设电子商务网站的必要性
  • 网站开发毕业设计评审表做网站后端语言用什么
  • 学校网站建设报价是多少钱大连手机网站开发
  • 优化网站设计有哪些方法做别人一摸一样的网站犯法吗
  • 网站建设记账做什么科目服务号wordpress
  • 重庆网站首页排名公司成都建设公司网站
  • 佛山新网站建设详细内容网络平台宣传方案
  • 小何自助建站网站后台链接怎么做
  • 咸宁做网站公司oecms(php企业网站管理系统)
  • 专业做网文的网站网站维护具体怎么做呀
  • 网站建设如何做用户名密码医院咨询男科
  • 公司网站内容更新该怎么做阿里巴巴国际站运营培训
  • 静态网页模板网站推广网站制作怎么做
  • 有做网站设计的吗微信小程序客户管理系统
  • wordpress网页打开加快广州专做优化的科技公司
  • 滨江网站建设公司有没有99块钱做网站