- 博客(32)
- 收藏
- 关注
原创 Linux权限有关
今天我们学习与Linux有关的权限等内容,以及一些零碎知识帮助我们理解Linux的系统和Xshell的原理。本篇是在Xshell环境下执行的。
2025-01-25 11:50:50
606
5
原创 力扣876. 链表的中间结点
顾名思义,是一个慢指针,一步一步走。快指针随心所欲,可以一次走两步,也可以一次走三步四步等。我们学习快慢指针,是为了这种算法思想。
2024-11-27 22:45:07
533
2
原创 类的默认成员函数
• 第二:编译器默认生成的函数不满足我们的需求,我们需要自己实现,那么如何自己实现呢?那就需要我们自己构造函数了。• 第一:我们不写时,编译器默认生成的函数行为是什么,是否满足我们的需求。接下来就要具体问题具体分析了,待会下文再说。赋值重载主要是把一个对象赋值给另一个对象。拷贝构造是使用同类对象初始化创建对象。构造函数主要完成初始化工作。析构函数主要完成清理工作。
2024-11-26 21:54:20
323
原创 对象的大小
A类:int型占4字节,char型占1字节,但由于对齐数的关系,char会先占一个字节,再空3个字节,下面才是int型4个字节,所以一共是8个字节。其实函数指针是不需要存储的,函数指针是⼀个地址,调用函数被编译成汇编指令[call 地址], 其实编译器在编译链接时,就要找到函数的地址,不是在运行时找,只有动态多态是在运行时找,就需要存储函数地址。再分析一下,对象中是否有存储指针的必要呢,Date实例化d1和d2两个对象,d1和d2都有自独立的成员变量,_year/_month/_day存储各自的数据,
2024-11-25 03:15:00
708
9
原创 类的实例化
打个比方:类实例化出对象就像现实中使用建筑设计图建造出房子,类就像是设计图,设计图规划了有多少个房间,房间大小功能等,但是并没有实体的建筑存在,也不能住人,用设计图修建出房子,房子才能住人。同样类就像设计图⼀样,不能存储数据,实例化出的对象分配物理内存存储数据。类是对象进行⼀种抽象描述,是⼀个模型⼀样的东西,限定了类有哪些成员变量,这些成员变量只是声明,没有分配空间,⽤类实例化出对象时,才会分配空间。
2024-11-24 08:00:00
378
4
原创 类域的范围
类域影响的是编译的查找规则,下⾯程序中Init如果不指定类域Stack,那么编译器就把Init当成全局函数,那么编译时,找不到array等成员的声明/定义在哪里,就会报错。指定类域Stack,就是知道Init是成员函数,当前域找不到的array等成员,就会到类域中去查找。类定义了⼀个新的作用域,类的所有成员都在类的作用域中,在类体外定义成员时,需要使用 :: 作用域操作符指明成员属于哪个类域。
2024-11-24 06:00:00
233
2
原创 访问限定符
C++⼀种实现封装的⽅式,用类将对象的属性与方法结合在⼀块,让对象更加完善,通过访问权限选择性的将其接口提供给外部的用户使用。访问权限作用域从该访问限定符出现的位置开始直到下⼀个访问限定符出现时为⽌,如果后⾯没有访问限定符,作⽤域就到 }即类结束。public修饰的成员在类外可以直接被访问;• ⼀般成员变量都会被限制为private/protected,需要给别⼈使⽤的成员函数会放为public。class定义成员没有被访问限定符修饰时默认为private,struct默认为public。
2024-11-23 18:42:56
410
3
原创 类和对象(一)
class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后⾯分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。public:// 成员函数perror("malloc申请空间失败");return;top = 0;size_t top;st.Init();st.Push(1);
2024-11-23 17:51:40
409
原创 函数栈帧的创建和销毁
当我们在写C语言代码的时候,为了使代码整洁高效,经常会把一个独立的功能抽象为函数,所以C程序是以函数为基本单位的。这也是C语言的特点之一(面向过程那函数是如何调用的?函数的返回值又是如何返回的?函数参数是如何传递的?这些问题都和函数栈帧有关系。函数栈帧(stack frame)就是函数调用过程中在程序的调用栈(call stack)中所开辟的空间,这些空间是用来存放函数参数和函数返回值的。临时变量 (包括函数的非静态的局部变量以及编译器自动生产的其他临时变量)
2024-11-20 14:46:54
2473
原创 c++入门基础(三)
3的和结果保存在⼀个临时对象中, int& rd = d也是类似,在类型转换中会产⽣临时对象存储中间值,也就是时,rb和rd引⽤的都是临时对象,所谓临时对象就是编译器需要⼀个空间暂存表达式的求值结果时临时创建的⼀个未命名的对象,C++中把这个未命名对象叫做临时对象。可以引用⼀个const对象,但是必须用const引用。const引用也可以引用普通对象,因为。,所以这⾥就触发了权限放⼤,必须要⽤常引⽤才可以。不需要注意的是类似 int& rb = a。这是非常重要的一句话。
2024-11-18 21:33:35
699
2
原创 与单链表有关删除的操作
本文主要讲的是关于单链表的删除操作,有头删,尾删,提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
2024-11-18 20:57:34
479
原创 c++入门(二)
引用不是新定义⼀个变量,而是给已存在变量取了⼀个别名,编译器不会为引用变量开辟内存空间,它会和它引用的变量共用同⼀块内存空间。类型& 引用别名 = 引⽤对象;//引用就可以理解为称号、别名,昵称等C++中为了避免引⼊太多的运算符,会复用C语言的⼀些符号,比如前面的,这里引用也和取地址使用了同⼀个符号&,大家注意使用方法角度区分就可以。
2024-11-17 18:27:35
375
原创 c++入门基础(一)
定义命名空间,需要使⽤到namespace关键字,后⾯跟命名空间的名字,然后接⼀对{}即可。int val;{}中即为命名空间的成员。命名空间中可以定义变量/函数/类型等。namespace本质是定义出⼀个域这个域跟全局域各自独立,不同的域可以定义同名变量,所以下面的rand不在冲突了。C++中域有函数局部域,全局域,命名空间域,类域;域影响的是编译时语法查找⼀个 变量 /函数 /类型出处 (声明或定义) 的逻辑,所有有了域隔离,名字冲突就解决了。
2024-11-16 16:14:24
2640
9
原创 力扣-206.反转链表
我们可以利用链表头插的方式,定义一个新的指针,指向头结点,然后将头结点以后的结点以头插的形式依次插入头节点的前面,这样就形成了反转链表的效果。
2024-11-04 21:52:06
614
原创 Windows自带的画图工具如何调节画布大小
当我们使用画图工具时发现画布不够用了时,我们要调节画布的大小。选项里面就可以调节画布的大小了。可以自由调节宽度和高度。左键点击,在下方找到。
2024-11-02 12:01:41
1955
原创 if条件的短路
a=0 是赋值语句,返回值通常为所赋的值也就是0,而因为短路(&&左边的表达式为假,会认为整个表达式为假),所以if语句不会再执行后面的语句。而又a=0为赋值语句,所以a更新为0,所以打印出来的a是0。这个式子,在大多数编程语境下,赋值表达式的结果就是所赋的值,也就是0。a++是打印完成之后再加一的,所以第二个打印结果为1。
2024-10-28 21:29:10
198
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人