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

成都建设局网站策划网络营销活动

成都建设局网站,策划网络营销活动,上海app开发推荐中伟科,长春做网站费用引言: 北京时间:20223/2/9/22:20,距离大一下学期开学还有2天,昨天收到好消息,开学不要考试了,我并不是害怕考试,考试在我心里,地位不高,可能只有当我挂了,才能…

引言:

北京时间:20223/2/9/22:20,距离大一下学期开学还有2天,昨天收到好消息,开学不要考试了,我并不是害怕考试,考试在我心里,地位不高,可能只有当我挂了,才能意识到吧!哈哈哈!我害怕的是为了要去复习而没有什么时间去更新我的博客了,害怕C++中的肉都给别人抢走了,害怕连汤都喝不上,所以此时当我知道了考试可以延后两个星期的时候,我是开心的,心情异常的好,对了,此时这里记录一下,就在刚刚,我报名了我大学生活中的第一个组织,好像叫什么图书馆助手的,但是还没被选上,结果在之后的博客中你们一定可以看到,此时我们带着对未来的美好憧憬和好心情,开始学习我们的C++吧!在这里插入图片描述

回顾类和对象

进入新的知识的学习,通过上篇博客,此时我们把类和对象的相关知识都搞定的差不多了,此时我们就要开始学习类和对象之后的知识了,如:STL库之类的,所以在我们进入到新的学习中去的时候,我们把上篇博客的内容先做一个回顾,并且为我们即将要学的新内容做一定的铺垫,这样就可以使我们的C++路途变得更加的光明。

所以此时我们就用一个题目来复习一下static的使用和匿名对象的使用

如题:求1+2+3+4+……+n,要求使用静态成员变量的方法

ok!看到这个题目,我们知道我们肯定见过,也实现过,只是我们使用的方法是循环或者递归而已,所以我们此时应该怎样用static来实现呢?
如图中代码:
在这里插入图片描述
看到上述的代码我们可以浅浅的把静态成员变量和静态成员函数,匿名对象的使用给小小的复习一下,此时我们深入看一下什么是静态成员变量,我们从一个问题出发。
问题:为什么静态成员变量要在类外初始化,不可以在类里面进行初始化呢?
原因:当我们使用了static,在类外定义一个变量的时候,此时该变量就已经在静态区存储好了,所以当我们使用类创建了多个对象的时候,其实本质上,这些对象使用的都是同一块内存中的数据
具体原理就是静态成员提供了一个同类对象的共享机制,所以该类所定义的对象共享同一个静态成员变量(无论定义多少个对象,他们的static成员变量都是同一个)所以静态成员变量属于整个类,不属于某个对象;得出这个结论,因为不属于某个对象所以就不可以在类中进行初始化(反向理解,就是如果你初始化了,此时这个静态成员变量就属于该对象了),所以不可以给缺省值,因为给了缺省值,这个值就是用于初始化列表给静态成员变量定义的,所以间接是进行了在类中进行静态成员变量的定义;并且,又由于在我们实例化对象的时候,静态成员变量也是在这个对象空间中,如果此时我们进行不止一个该类对象的实例化,然后此时对每个类对象中的静态成员变量进行定义,就会因为此时的静态成员变量是在静态区的,只有唯一的一块空间,导致重复定义的问题或者竞争定义的问题,所以编译器是不允许这样的情况的,所以总的来说,静态成员变量要事先在类的外部进行定义,不允许在类的内部进行定义。

铺垫光明之路

上述问题有助于我们很好的把static这块的知识搞定,所以接下来我们就开始为我们的C++光明之路铺垫一下,学习了解一些有关编译器系统和类中的特殊知识,为类和对象过度到新知识架好桥梁,Come on.

类中类的认识

并且此时内部类天生就是外部类的友元哦!了解就行,平时很少用的。

编译器内部优化

该编译器的优化一般就是针对于那种构造完就拷贝构造的情况,例:A a = 1;会先构造出一个A类型的临时变量,然后再把该临时变量拷贝构造给a,这就涉及了构造和拷贝构造连续进行,此时我们的编译器就会对其进行优化,所以我们大致以这个方向进行系统优化的学习,但前提是你的编译器当中有优化这个操作的执行,不是所有的编译器都是有自动优化这个功能的。

传值传参中的系统优化

在这里插入图片描述
如下代码:

#include<iostream>
using namespace std;class A
{
public:A(int a = 1){cout << "证明调用构造函数" << endl;}A(const A& aa = 1){cout << "证明调用拷贝构造函数" << endl;}~A(){cout << "证明调用了析构函数" << endl;}
private:int _a;};
void Function1(A aa1)
{}
void Function2(const A& aa)
{}int main()
{//A aa1 = 1;        //构造+拷贝构造 -> 优化为直接构造(前提是在同一个表达式中)//Function1(aa1);    //此时这个只会调用一次的拷贝构造//Function1(2);      //构造+拷贝构造 -> 优化为直接构造(前提是在同一个表达式中)//Function1(A(3));   //构造+拷贝构造 -> 优化为直接构造(前提是在同一个表达式中)A aa1 = 1;        //重点:因为这个不是进行直接传参,所以此时涉及临时变量,只有涉及到传参时,才不会有临时变量,而是直接使用形参这个局部变量Function1(aa1);    //此时如何理解析构函数的调用,因为此时我用aa1就拷贝了aa,aa是该函数的一个局部变量,是一个形参,所以当函数结束之后,aa就要销毁,此时不是临时变量,是局部变量(这里要区别析构函数对main函数中对象的销毁和对其它函数中局部变量的销毁)Function1(2);      //这个也是因为直接进行传参,被编译器优化成了直接构造,所以是直接使用形参,局部变量,所以函数调用完之后,需要调用析构函数进行清理工作Function1(A(3));   //这个也是因为直接进行两次传参,没有涉及临时变量,所以使用了两次的形参传递,所以调用两次析构函数return 0;
}

传引用传参的系统优化

在这里插入图片描述
代码及注释:

#include<iostream>
using namespace std;class A
{
public:A(int a = 1){cout << "证明调用构造函数" << endl;}A(const A& aa = 1){cout << "证明调用拷贝构造函数" << endl;}~A(){cout << "证明调用了析构函数" << endl;}
private:int _a;};
void Function2(const A& aa)
{}
int main()
{A aa1 = 1;Function2(aa1);//此时这个是传引用传参,所以根本不涉及构造函数和拷贝构造函数,所以无优化(简单理解:就是把自己直接当作形参)Function2(2);  //这个就是直接构造一个A类型的变量然后传给参数,此时那个参数就是这个构造出来的变量的别名,所以有构造和析构(所以这个是不需要优化的),因为根本就没有拷贝构造Function2(A(3));//第一次传参同理,需要临时变量,第二次传参不涉及临时变量return 0;
}

传返回值的系统优化

在这里插入图片描述代码注释如下:

#include<iostream>
using namespace std;class A
{
public:A(int a = 1){cout << "证明调用构造函数" << endl;}A(const A& aa = 1){cout << "证明调用拷贝构造函数" << endl;}~A(){cout << "证明调用了析构函数" << endl;}
private:int _a;};A Function3()
{A aa;//此时重点讲的是,构造和拷贝构造不在同一行的情况之下,是不涉及优化的,只有在同一行才有优化(此时该行就是构造)return aa;//构造好之后返回就是拷贝构造了,并且此时就涉及到了临时变量的返回,有常属性,并且虽然此时是临时变量,但是因为上面的aa是局部变量,所以也需要一次析构
}
A Function4()
{return A();//总:匿名对象返回是更好的,编译器优化更好
}
int main()
{Function3();//不优化(一个构造,一个拷贝构造)cout << "___________________________________" << endl;A aa1 = Function3();//优化(从一个构造,两个拷贝构造到一个构造,一个拷贝构造)cout << "___________________________________" << endl;Function4();//优化(此时就是一个步骤,所以就是直接构造)cout << "___________________________________" << endl;A aa2 = Function4();//优化(此时就是一个)return 0;
}

总:接收返回值对象,尽量拷贝构造接收,不要赋值接收;函数中返回对象时,尽量返回匿名对象;并且函数传参是尽量使用const和引用接收函数参数。

在这里插入图片描述

总结:北京时间:2023/2/10/20:09,明天开学,上述内容,我知道有一些的摆烂,没什么时间写,也不怎么想写了,所以撤了,收拾东西去了,各位学校见。

http://www.ds6.com.cn/news/4762.html

相关文章:

  • 贵州建设网站seo推广软件排名
  • 莫名接到网站建设电话矿产网站建设价格
  • 太原做网站兼职seo收费
  • 雄安新区做网站公司软文代写发布网络
  • 怎样做网站吸引客户抖音企业推广
  • 阿里云建站后台建站seo优化是什么职业
  • 网站开发用的工具seo网站排名优化工具
  • 外贸独立站营销怎么做山东济南seo整站优化公司
  • 网站的大图标怎么做网络维护公司
  • 门户网站需要多大的服务器google推广怎么做
  • 武汉生活论坛搜索引擎优化seo专员招聘
  • 企业网站做几个合适百度关键词优化手段
  • 蓝色的包装材料企业网站模板西安seo建站
  • 网站开发的步骤百度关键词投放
  • 杭州化工网站建设代运营一个月多少钱
  • 电子商务网站开发基本流程快优吧seo优化
  • 汤阴有没有做网站的公司南京seo网站优化
  • 南昌网站设计专业排名文案代写平台
  • scratch上海优化公司排行榜
  • 做网站建设多少钱搜索数据
  • 莱芜金点子最新招聘移动优化课主讲:夫唯老师
  • 网站编辑教程百度推广深圳分公司
  • 做中英文游戏门户网站关键词怎么弄重庆公司网站seo
  • 淘宝客免费建网站武汉大学人民医院精神科
  • 有没有免费网站制作百度推广费用一年多少钱
  • 嘉定区网站建设网站运营推广的方法有哪些
  • 德州做网站建设的公司网站上做推广
  • 北京住房和城乡建设委员会网站6青岛网络seo公司
  • 网站开发项目预算表手机google官网注册账号入口
  • 高校网站建设管理办法seo培训学校