- 博客(33)
- 收藏
- 关注
原创 继承与构造函数与析构函数
4,若在基类未设计拷贝构造函数,派生类设计了,在派生类中没有指明基类构造函数类型时,使用缺省的拷贝函数,若没有缺省函数,编译错误 // 0 1。3,若在基类和派生类均设计了拷贝函数,在派生类中没有指明基类构造函数类型时,使用缺省的拷贝函数,若没有缺省函数,编译错误 // 1 1。2,若基类有拷贝函数,派生类没有函数,将在派生类中生成按位拷贝的拷贝构造函数 // 1 0。
2024-08-25 21:29:46 130
原创 构造析构函数设置访问限定符的意义
public:构造函数和析构函数一般是public的,以便在类外部自由创建和销毁对象。适用于普通类的标准使用场景。protected:限制类的直接实例化或销毁,通常用于继承结构中,确保基类不能被直接实例化或销毁,但允许派生类访问。private:完全控制对象的创建和销毁,适用于单例模式或工厂模式,防止类的实例在不受控制的情况下被创建或销毁。
2024-08-25 21:07:40 534
原创 继承—构造函数—引用等
4,无论采取什么继承方式,派生类对象的成员方法都可以去访问基类对象中的保护和共有属性。继承时,数据成员,函数成员全盘接收,如果碰见同名成员屏蔽基类成员。1,无论采取什么继承方式,基类中所有数据成员都将继承到派生类。2,在类型的继承层次里,保护属性当作共有属性使用。函数同名隐藏不应被看作是函数重载,因为作用域不同。
2024-08-25 17:53:03 152
原创 vector容器库
元素被连续存储,这意味着不仅可通过迭代器,还能用指向元素的常规指针访问元素。所用的方式不在每次插入元素时,而只在额外内存耗尽时进行重分配。通常占用多于静态数组的空间,因为要分配更多内存以管理将来的增长。重分配通常是性能上有开销的操作。如果元素数量已知,那么。元素的指针能传递给任何期待指向数组元素的指针的函数。vector 的存储是自动管理的,按需扩张收缩。是封装动态数组的序列容器。(对于 bool 以外的。函数可用于消除重分配。返回多余的内存给系统。(C++17 起)及。
2024-08-24 21:58:31 324
原创 11111
private:char* ptr;public:if (s.ptr!= nullptr)elseif (str!= nullptr)elseif (ptr!= nullptr)if (ptr!= nullptr)if (ptr!= nullptr)delete ptr;if (s.ptr!else。
2024-08-23 18:51:42 209
原创 计算机启动
这个其实也不难猜测,启动区的内容就是我们自己写的代码了,复制到这里之后,就开始执行呗,之后我们的程序就接管了接下来的流程,BIOS 的使命也就结束啦。其实,我的解释也只能说是人家规定了这个值,后人们替他们解释这个合理性,并不是说当初人家就一定是这样想的,就好比我们做语文的阅读理解题一样。然后正因为所有写操作系统的,启动区的第一行汇编代码都写死了这个数字,那 BIOS 开发者最初定的这个数字就不好改了,否则它得挨个联系各个操作系统的开发厂商,说我这个地址改一下,你们跟着改改。哦,前面说过了是加载,
2024-08-18 11:48:32 494
原创 计算机启动
由于用于启动盘的磁盘是人家写操作系统的厂商制作的,俗称制作启动盘,所以他也肯定知道操作系统的核心代码存储在磁盘的哪个扇区,因此启动区就把这个扇区,以及之后的好多好多扇区(具体取决于操作系统有多大)都读到内存中,然后跳转到开始的程序开始的位置。这个就不像 0x7c00 这个数那么经典了,不同的操作系统肯定也不一样,也不用事先规定好,反正写操作系统的人给自己定一个就好了,别覆盖其他关键设备用到的区域就好。启动区里的代码写了啥?就 512 字节就是全部操作系统内容了?没错,就是这个套路。
2024-08-17 13:17:42 214
原创 计算机的启动过程
BIOS 程序的入口地址也就是开始地址是 0xFFFF0(人家就那么写的),也就是开机键一按下,一定有一个神奇的力量,将 pc 寄存器中的值变成 0xFFFF0,然后 CPU 就开始马不停蹄地跑了起来。如果再说具体些,CPU 将段基址寄存器 cs 初始化为 0xF000,将偏移地址寄存器 IP 初始化为 0xFFF0,根据实模式下的最终地址计算规则,将段基址左移 4 位,加上偏移地址,得到最终的物理地址也就是抽象出来的 PC 寄存器地址为 0xFFFF0。你可以算算我们现在的 64 位机的地址范围。
2024-08-16 10:31:22 743
原创 什么是复杂度
我们在做一些算法题时,经常会发现题目会对时间复杂度或者有所要求,如果你不知道什么是复杂度时,你可能就无法正确的完成题目。因此,我们在学习数据结构与算法的第一步,就是要理解什么是复杂度。什么是复杂度复杂度是衡量算法效率的标准,而算法分析效率分为两种:时间效率和空间效率。由此,复杂度也被分为两种:时间复杂度和空间复杂度。时间效率被称为时间复杂度, 而空间效率被称作空间复杂度。时间复杂度主要衡量的是一个算法的运行速度。
2024-08-15 16:58:08 327
原创 名字粉碎.
PA--表示指针,后面的代号表明指针类型,如果相同类型的指针连续出现,以“0”代替,一个“0”代表一次重复;_fastcall 调用约定是“人”如其名,它的主要特点就是快,因为它是通过寄存器来传送参数的 (实际。_fastcall调用约定在输出函数名前加上一个”@“符号,函数名后面也是一个”@“符号和其函数的字节数。4、参数表的第一项为该函数的返回值类型,其后依次为参数的数据类型,指针标识在其所指数据类型前;送,被调用的函数在返回前清理传送参数的内存栈),在函数名修饰约定方面,它和前两者均不。
2024-07-28 16:26:59 321
原创 直接寻址和间接寻址
是指在指令中给出的是一个指向要操作的数据地址,处理器首先访问该地址,再获取实际数据的地址,最后才进行相应的读/写操作。指令给出了存放操作数地址的存储单元的地址(也称地址指针)。:是指在指令中明确要操作的数据的地址,处理器可以直接访问该地址并进行读取或写入操作。指令直接使用存储器或寄存器的元件名称和地址编号。在指令中,数据类型应与指令表示符相匹配。
2024-07-28 15:14:52 142
原创 C++中的变量的同名隐藏
同名隐藏是C++中的一个概念,在一个类的继承关系中,子类中定义了一个与父类中同名的成员函数。当这种情况发生时,子类中的函数会隐藏掉所有父类中同名的函数,这意味着在子类中调用这个函数时,会优先调用子类中定义的版本,而不是父类中的版本。代码中有两个g_max,我们会优先打印main函数里的g_max,遵循就近原则。如果想要使用全局变量的g_max需要添加::全局解析符表明用意。首先通过C中的代码来进入这个问题。
2024-07-16 14:43:34 392
原创 C++9 构造析构
这时我们的Print打印的将是20,因为此时形参与类中变量名相同,局部优先将打印20。在a=x时,会隐式类型转化从而再次调用构造函数和析构函数。普通函数不可以使用。
2024-07-13 17:47:46 170
原创 C语言杂谈:从Hello world说起 #include| main| printf| return
return,printf,main函数,#include
2024-06-03 14:33:24 1608
原创 C++(3) 指针和引用的区别|引用的本质|引用小结|inline函数|缺省函数
指针和引用的区别|引用的本质|引用小结|inline函数|缺省函数
2024-05-24 19:11:09 960 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人