c++
文章平均质量分 77
详细介绍c++
你们叫她小龙女么
主要记录学习历程,加油加油加油加油加油
展开
-
Vector实现
0.熟悉他的功能1.不要每一行读懂了再看下一行,这样读代码会很困难.2.先拉框架,不要先抠细节3.理解的时候连蒙带猜,再验证猜测类:成员变量+成员函数。原创 2024-08-15 00:07:20 · 332 阅读 · 0 评论 -
string的模拟实现
【代码】string的模拟实现。原创 2024-08-13 21:56:39 · 232 阅读 · 0 评论 -
C++中的继承
继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。public:protected:// 姓名// 年龄// 继承后父类的Person的成员(成员函数+成员变量)都会变成子类的一部分。这里体现出了。原创 2024-09-18 21:49:43 · 1372 阅读 · 0 评论 -
模板的进阶
上述示例中,p1指向的d1显然小于p2指向的d2对象,但是Less内部并没有比较p1和p2指向的对象内容,而。通常情况下,使用模板可以实现一些与类型无关的代码,但对于一些特殊类型的可能会得到一些错误的结果,需要特殊处理,比如:实现了一个专门用来进行小于比较的函数模板。该种实现简单明了,代码的可读性高,容易书写,因为对于一些参数类型复杂的函数模板,特化时特别给出,因此函数模板不建议特化。非类型形参,就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成常量来使用。原创 2024-08-28 16:47:19 · 750 阅读 · 0 评论 -
List简介
1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。2. list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。3. list与forward_list非常相似:最主要的不同在于forward_list是单链表,只能朝前迭代,已让其更简单高效。4. 与其他的序列式容器相比(array,vector,deque),list通常在任意位置进行插入、移除元素的执行效率更好。原创 2024-08-21 20:55:41 · 940 阅读 · 0 评论 -
类和对象(中)
我们_array是通过malloc开辟空间的,这时候我们发现,传参的时候s仅仅只是将s1中_array变量中储存的地址拿了过去,只是将main栈帧里面存的东西原模原样复制到func2栈帧中而已,他们的_array中存的都是指向堆区的同一块空间的指针。2.不会处理内置类型的成员,例如int double...,是随机值,所有指针,包括自定义类型的指针也都是内置类型,一般会初始化为nullptr。注意,全缺省的函数与无参的函数,在语法上构成函数重载,但是在实际调用时会产生错误,因为编译器不知道调用哪一个。原创 2024-07-14 23:52:50 · 1007 阅读 · 1 评论 -
C/C++内存管理
但是new和delete最重要的功能还是用来处理自定义类型,malloc无法很好支持动态申请的自定义对象的初始化class Apublic:: _a(a)_a = a;int main()//自定义类型,开空间+调用构造函数初始化//自定义类型,调用析构函数+释放空间delete p2;delete p3;//也支持一次定义多个对象//多个对象的初始化1. A a1(1);A a2(2);2. //使用匿名对象。原创 2024-07-20 10:10:05 · 648 阅读 · 0 评论 -
类和对象(上)
但是c++中更喜欢使用class,主要原因在4.访问限定符中讲// 类体:由成员函数和成员变量组成// 一定要注意后面的分号class为定义类的关键字,ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。类的两种定义方式:1. 声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器会将其当成内联函数处理。原创 2024-07-12 23:01:16 · 906 阅读 · 1 评论 -
c++模板初识
class 类模板名// 类内成员定义/ 动态顺序表// 注意:Vector不是具体的类,是编译器根据被实例化的类型生成具体类的模具public :, _size(0){}// 使用析构函数演示:在类中声明,在类外定义。~Vector();// 注意:类模板中函数放在类外进行定义时,需要加模板参数列表if(_pData)原创 2024-07-20 12:32:44 · 693 阅读 · 3 评论 -
类和对象(下)
目录一、再谈构造1.初始化列表2.c++11中,可以在声明的时候给缺省值3.构造的优化现象4.c++11支持多参数的隐式类型转换5.explicit可以禁止隐式类型转换6.匿名对象二、static成员三、四、友元1.友元函数2.友元类五、内部类一、再谈构造1.初始化列表初始化列表:以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟一个放在括号中的初始值或表达式。class Date{原创 2024-07-19 09:28:46 · 870 阅读 · 0 评论 -
C++入门基础知识
这两个函数属于传值返回。另外,指针进行初始化和赋值以及引用进行初始化的时候,权限可以缩小,但是不能放大,因为对于指针来说,两个变量里的指针指向的是同一块空间,而对于引用来说,一个变量改变可以直接影响另一个。auto在同一行声明多个变量时,这些变量必须要类型相同,否则编译器会报错,因为编译器实际上只对第一个类型进行推导,然后用推导出来的类型定义其它变量。内联函数也不建立栈帧,但是在默认的debug版本不起作用,因为那样就不能调试了,release下会起作用,编译的时候会在调用内联函数的地方展开。原创 2024-05-20 15:19:15 · 723 阅读 · 2 评论 -
string类简略讲解
但是如果是使用流插入打印,那么打印出来的内容是按照size打印,如果使用c_str(),即使用const char *打印,那么会受到'\0'的影响。可以理解成一个像指针的东西,str.begin()理解成取str[0]的地址,str.end()则是取字符串最后一位后面的那个位置的地址。(这个类里面还有cbegin(),cend(),crebegin(),crend())来区分普通和const修饰的类型,但是使用不广泛。如果我们知道要开多少空间,我们可以提前开好空间,减少扩容,扩容所产生的消耗太大了。原创 2024-05-27 17:20:16 · 709 阅读 · 0 评论 -
List的几个小点
3.sort//list只能用自己的sort,因为list是bidirectional iterator,而sort要求RandomAccessIterator。4.merge(用的比较少)二、operations。原创 2024-06-01 09:29:35 · 195 阅读 · 0 评论 -
Vector的小部分常用接口
vector默认遍历的时候下标要小于它的size,即使开了空间,也无法强行访问。stl中的内容具有很强的统一性,所以其它可以参照string。vector可以理解成一个能够动态增加的数组,也即顺序表。三、insert,erase,和find。原创 2024-05-31 16:26:05 · 185 阅读 · 0 评论
分享