自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 c++STL(string底层模拟实现)

C++ string 底层接口实现

2021-12-15 15:55:10 1132

原创 c++中const关键字

C语言中const关键字要点const 是C语言的一个关键字,需要注意的是,const 关键字是把变量变为一个只读的变量(也就是不可以作为左值),绝对不是将这个变量变为常量。也就是说经过const 修饰的变量成为只读的变量之后,那么这个变量就只能作为右值(只能赋值给别人),绝对不能成为左值(不能接收别人的赋值)。而 C++ 则是将 const 修饰的常量变为一个真正的常量(变量的内容不可以被修改), 这一点的区别需要进行注意。当 const 变量的时候,就将这个常量放在符号表里面,编译的过程中发现使用了

2021-11-24 22:34:14 342

原创 c++----------深浅拷贝

浅拷贝概念:浅拷贝也称为拷贝,编译器只是将对象中的值拷贝过来。如果对象中管理资源,最后就会导致多个对象共享同一份资源,当一个对象销毁时就会将该资源释放掉,而此时另一些对象不知道该资源已经释放,以为还有效,所以当继续对资源进项操作时,就会发生访问违规。这就是典型的浅拷贝问题:当s1析构时,s2还指向这块空间,s2调用它自己的析构函数时,又会对这块已经还给操作系统的空间再次进行释放,从而引发程序崩溃;为了处理浅拷贝的问题,我们就采用深拷贝深拷贝深拷贝:同时也更能体现出引用的价值!.

2021-11-15 16:32:45 799

原创 C++小细节——VS代码优化(构造与拷贝构造)

Vs下构造与拷贝构造得优化这段代码的运行结果可以发现:调了两次拷贝构造这里说明的第一个问题:这里的传值传参和传值返回都会生成一个拷贝对象。接下来我们把主函数改一下:改成这个样子;实际上这里会有两次拷贝构造:第一次:返回值w会拷贝构造给临时变量,临时变量再拷贝给ret;而此时编译器会优化(这里不是必须的,优化只是在一些新的编译器才会做),只会进行一次拷贝构造:优化过程:意思就是:编译器优化以后会变成:不要中间变量直接由1到3,但是有人会问处理作用域w不是会销毁吗?这里我们就不要管,编译器

2021-11-06 16:59:24 705

原创 面向对象总结—构造函数

this指针:在谈构造函数之前,有这样两个问题:1.this指针存在哪里?2.this指针可以为空吗?问题1:this 指针是形参,形参和函数中局部变量都是存在函数栈帧里面的,所以this指针可以认为是存在栈的;vs为了提高效率,this指针是通过寄存器ecx传递的。问题2:成员函数的地址不在对象中存储,存在公共代码段;这里调用成员函数,不会去访问p指向的空间,也就不存在空指针解引用了,这里会把p传递给隐含的this指针,但是Show函数也没有解引用this指针。底层并没有对空指针引用;

2021-11-05 10:48:58 265

原创 理解析构函数和构造函数的生命周期

通过这个题,让我对构造函数和析构函数的生命周期有了新的理解;首先我们要明白的是,构造函数是定义的时候调用的,析构函数是对象生命周期结束的时候调用的;以下是测试代码:第一步我们很明确的是先构造a,再构造b,a,b的构造顺序是我们明白的,同时我们也知道栈的特点是后进先出;c是全局变量,d是静态变量,c,d在整个程序运行期间都存在,main()结束的时候才销毁。同时c是在main函数调用之前,就已经被定义出来了;第二步:静态变量是在函数第一次调用的时候初始化的;假设我们改成这样,a,b会被初始化.

2021-11-02 16:39:40 559

原创 2021-10-25

c++随笔(六)成员函数构造函数它的主要功能完成初始化工作;四级标题五级标题六级标题

2021-10-26 19:56:10 49

原创 2021-10-25

c++随笔(五)类的作用域在我们写大型项目的时候一般讲究函数的定义和声明分离:需要注意的是:编译器会再做一次选择,如果函数长的话,也不会直接展开;

2021-10-25 21:51:34 38

原创 2021-10-25

c++随笔(四)内联函数概念:以inline修饰得函数叫做内联函数,编译器c++编译器会在调用内联函数得地方展开,没有函数调用建立栈帧得开销,内联函数提升程序运行得效率。举个例子:如果一个swap函数,三级标题四级标题五级标题六级标题...

2021-10-25 21:14:05 38

原创 2021-10-23

c++随笔(三)引用作返回值这是我们认为得函数得传值返回;而实际并不是这样得;实际上是不会用c作返回值得;因为c除了作用域会销毁;实际上编译器会产生一个临时变量;c将值拷贝到这个临时变量,如果临死变量小,会存储在寄存器中,如果临时变量大,会在main函数得栈帧中开辟一块空间去存这个临时变量;这个临时变量具有常性;所以这样的写法是错误的;Add函数的返回值具有常性;用int&接收会扩大权限;此时会导致错误;而加const才是正确的;我们再来看这样的一个现象:这个的结果是3毋庸置

2021-10-25 11:14:29 50

原创 2021-10-21

c++随笔(二)函数重载函数重载:在c++中,允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数或类型或顺序)必须不同,常用来处理实现功能类似数据类型不同的问题;为什么c语言不支持重载四级标题五级标题六级标题...

2021-10-23 17:40:31 40

原创 2021-10-21

c++随笔(一)引言之前对c++的学习,我的笔记是记录在word里的,但是遗忘的时候,去复习的时候总是要对着标题从头看,很麻烦,现在我以博客的形式分享我日常的学习和复习,也希望各位大神,发现我文章有错误的地方,对我进行指导;缺省参数这就是一个很简单的缺省参数的例自,它的意思很直白,如果函数调用的时候有值传给形参,那么形参就用传入的值,不然就用缺省值;举个例子:在C语言中我们实现栈的时候,我需要动态内存开辟数组,但是我们不知道开多大空间,此时我们就可以定义一个默认参数值,作为缺省值:全缺省

2021-10-21 20:20:47 53

原创 2021-08-03

记录学习计划多看书,多总结,多复习,遇到问题多想,做好实验室项目和自我提升的平衡,即学习实验室项目的同时,每天也学些自己的,例如数据结构等,加油!

2021-08-03 14:51:28 64

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除