C++
文章平均质量分 78
来自对施磊老师课程学习的笔记内容
星海-Hoshiumi
一些为自己学习做的笔记
展开
-
09 智能指针
智能指针:保证能做到资源的自动释放;是利用栈上的对象出作用域自动析构的特征,来做到资源的自动释放的。堆内存管理示例(使用智能指针)堆内存管理示例(手动管理)是C++98标准库中的智能指针类型,但由于其语义不明确且容易导致资源管理问题,它在C++11中被弃用。auto_ptr的问题主要在于其复制语义:复制一个 auto_ptr 会将资源的所有权从一个auto_ptr 转移到另一个,而不是复制资源。scoped_ptr。原创 2024-07-16 19:42:50 · 256 阅读 · 0 评论 -
08 对象的应用和右值引用
对象使用过程中背后调用的方法。原创 2024-07-15 23:37:02 · 314 阅读 · 0 评论 -
07 STL(标准模板库)
底层数据结构:是动态开辟的数组,每次以原来空间大小的2倍进行扩容。vector提供了operator[](中括号运算符重载函数),用来随机访问。vector本身也是一个数组,有着随机访问的特点,可以用下标的随机访问,例如vec[5]。iteratorfindfor_each:对容器进行连续插入或者删除操作(insert/erase),一定要更新迭代器,否则第一次insert或者erase完成,迭代器就失效了。返回底层容器有效元素的个数。判断容器是否为空。vector预留空间的;原创 2024-07-15 17:29:02 · 756 阅读 · 0 评论 -
06 继承与多态
一个类里面定义了虚函数,那么编译阶段,编译器给这个类类型产生一个唯一的vftable虚函数表,虚函数表中主要存储的内容就是RTTI指针和虚函数的地址。当程序运行时,每一张虚函数表都会加载到内存的.rodata区。原创 2024-07-13 23:52:33 · 929 阅读 · 0 评论 -
05 运算符重载
上面代码中的a,b没有指定类型,可以任意实例化类型。如果a + b是普通类型,内置编译器可以自行编译计算,但a和b是对象类型,编译器不知道对象如何相加,要用运算符重载。对此提供相应的输入和输出运算符重载函数,都是在全局作用域下实现的,如下。:使对象的运算表现的和编译器内置类型一样。括号中带一个整型参数的,为后置++。达到和内置编译器同样的输入和输出形式。扩号中无参数,为前置++。原创 2024-07-12 23:11:40 · 973 阅读 · 0 评论 -
04 C++模板
在函数的调用点进行实例化可以使用typename或者class定义模板参数列表,通常使用typename都是常量,只能使用,不能修改允许模板在编译时使用常量值;非类型参数可以是整数、枚举值、指针或引用等,这些参数在编译时必须是常量;通常用于数组的大小、固定大小的数据结构或编译时计算。可以根据用户传入的实参的类型,来推导出模板类型参数的具体类型编译器会优先找非模板函数(普通函数),没有才去找compare模板函数constcharintint。原创 2024-07-09 21:52:02 · 301 阅读 · 0 评论 -
03 面向对象(OOP)-类和对象
C:各种各样的函数的定义 structC++:类 => 实体的抽象类型实体(属性,行为) -> ADT(abstract data type)对象 成员变量,行为->成员方法)抽象,封装(隐藏),继承,多态。原创 2024-07-08 23:44:34 · 566 阅读 · 0 评论 -
02 C++基础
C++基础原创 2024-07-07 23:48:29 · 274 阅读 · 0 评论