自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 多态常见习题

静态成员函数与具体对象无关,属于整个类,核心关键是没有隐藏的this指针,可以通过类名::成员函数名 直接调用,此时没有this无法拿到虚表,就无法实现多态,因此不能设置为虚函数,不是因为其不能被重写。首先func函数构成了多态(虚函数重写了,也是使用的父类的指针调用的),最后发生的情况为,func函数的定义为父类的定义,而函数体为子类的(重写只是重写了函数体)17. 假设A类中有虚函数,B继承自A,B重写A中的虚函数,也没有定义任何虚函数,则(D )答:在虚函数的后面写上 =0 ,则这个函数为纯虚函数。

2024-07-14 12:21:07 550

原创 C++【多态】

多态为在继承关系中不同的类对象去调用同一函数,产生了不同的结果。比如现在有两个类为Person和Student,Student继承了Person。Person买票为全价,Student买票为半价。在1.必须通过基类的指针或者引用调用虚函数2.被调用的函数必须是虚函数,且派生类要对基类的虚函数进行重写(注意区分重写与重定义,重定义为隐藏public:cout << "成人买票全价" << endl;public:cout << "学生买票半价" << endl;Person p1;

2024-06-23 21:14:29 768

原创 C++【继承】

(在子类成员函数中,可以使用 基类::基类成员 显示访问)3. 需要注意的是。

2024-06-17 11:12:46 1039

原创 C++中list容器

1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且其可以前后双向迭代2. list的底层是双向链表结构3.与其他的序列式容器相比(array,vector,deque),list通常4.与其他序列式容器相比,list和forward_list(单向链表)最大的缺陷是不支持任意位置的随机访问,要访问list的第6个元素,必须从已知的位置(比如头部或者尾部)迭代到该位置。

2024-06-11 13:56:20 438

原创 Vector容器

如果pos刚好是最后一个元素,删完之后pos刚好是end的位置,而end位置是没有元素的,那么pos就失效了。erase删除pos位置元素后,pos位置之后的元素会往前搬移,没有导致底层空间的改变,理论上讲迭代器不应该会失效,就时间而言,这是一个相对代价高的任务,因为每当一个新的元素加入到容器的时候,vector并不会每次都重新分配大小。,而使用一块已经被释放的空间,造成的后果是程序崩溃(即如果继续使用已经失效的迭代器,程序可能会崩溃。在以上操作完成之后,如果想要继续通过迭代器操作vector中的元素,

2024-05-30 13:28:01 600

原创 C++模板(初识)

也可以使用。

2024-04-23 15:26:11 435

原创 C++内存管理

num_byte为要申请的空间大小,需要我们手动的去计算,如int *p = (int *)malloc(20*sizeof(int)),如果编译器默认int为4字节存储的话,那么计算结果是80Byte,一次申请一个80Byte的连续空间,并将空间基地址强制转换为int类型,赋值给指针p,此时申请的内存值是不确定的。但这并不是他们之间最重要的区别,用于对动态内存进行扩容(及已申请的动态空间不够使用,需要进行空间扩容操作),ptr为指向原来空间基址的指针, new_size为接下来需要扩充容量的大小。

2024-04-22 13:22:11 1559

原创 类和对象(下)

初始化列表:以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟一个放在括号中的初始值或表达式。注:1.每个成员变量只能在初始化列表中出现一次,即只能初始化一次2.以下成员必须放在初始化列表中进行初始化:1)const成员变量2)引用成员变量3)没有默认构造函数的自定义类成员3. 尽量使用初始化列表初始化,因为不管你是否使用初始化列表,对于自定义类型成员变量,一定会先使用初始化列表初始化。 4.成员变量在类中声明次序就是其在初始化列表中的初始化顺序,与其在初始化列表中

2024-04-18 09:44:31 1599 1

原创 C++运算符重载

当返回对象是一个局部变量或者临时变量,出了当前函数作用域就销毁了时,不能使用引用返回,因为引用对象在函数栈已经销毁了。除了作用域,返回对象还没析构的时候可以使用引用返回,减少拷贝为了增强C++代码的可读性,引入了运算符重载,运算符重载是具有特殊函数名的函数,具有返回类型,函数名以及参数。其函数名为:operator+需要重载的运算符函数原型:返回类型 operator操作符(参数)

2024-04-16 13:48:43 469 1

原创 C++默认成员函数

默认的拷贝函数对象按内存存储,按字节完成拷贝,这种拷贝叫做。

2024-04-12 12:37:53 501

原创 C++琐碎知识点

分离会导致链接错误。因为inline被展开,就没有函数地址了,链接就会找不到。

2024-03-31 19:21:17 1548 1

原创 数据结构排序汇总

首先选出开始位置为关键元素key,将比它大的元素放到右边(右侧找小),比它小的元素放到其左边(左侧找大),最终将key放到中间位置。遍历数组选出最大的元素和最小的元素,将其固定在头,尾位置。之后缩减遍历的区间,继续找第二大,第二小的元素,再固定到两边。先将最大的值与最后一个位置的值进行交换,将最后一个排除在堆外,然后进行堆的调整,选出第二大的元素,再进行交换。将元素依次向后比较,选出最大的挪到最后面,缩减比较区间,再选出第二大的元素固定到后面。时间复杂度:o(n^2)时间复杂度:o(n^2)

2024-03-26 15:11:49 224

原创 合并两个有序数组

给你两个按排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目请你nums2到nums1中,使合并后的数组同样按排列(nums1的初始长度为m + n)。

2024-03-13 10:30:43 205

原创 移除指定元素

给一个数组nums和一个值val,你需要原地移除所有等于val的元素,并返回移除元素后的数组的新长度。

2024-03-12 16:49:08 109

原创 cout与cin;缺省参数

cout与cin自动识别类型,省略了scanf与printf一定要输入的类型参数。

2024-03-09 11:32:42 122

原创 C++入门

此时两部分内容中都含有结构体Node和min变量,重复命名了,但现在它们处于不同的命名空间中,故使用时只需标明其所在的域就可以正常使用。(命名空间的名字不能相同)C语言没办法解决命名冲突问题(我们自己定义的名字和库中的名字冲突;项目组中,多个人定义的名字冲突),故C++提出了namespace来解决。或者也可以使用全局展开:(一般情况不建议全局展开)域作用限制符(::)

2024-03-09 11:01:46 158

原创 删除有序数组中的重复项

若快指针与前一个位置的内容相同则继续往前走,slow不变;若快指针与前一个位置的内容不同则将快指针位置的内容给慢指针,然后慢指针向后移动一步,快指针继续走,直到数组最后。因为第一个元素一定是要的,所以起点从1开始。,返回删除后数组的新长度。删除重复出现的元素,使每个元素。

2024-03-07 14:17:48 286 1

空空如也

空空如也

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

TA关注的人

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