
C++
记录C++的基础
丨wuyz丨
这个作者很懒,什么都没留下…
展开
-
C++多线程
并发,线程,进程的基本概念并发并发:两个或多个任务(独立的活动)同时发生(进行),目的:可以执行更多的任务,提高性能原创 2022-03-08 10:06:00 · 680 阅读 · 0 评论 -
c++ 概念解析
new, delete, malloc, free 之间的关系malloc 和 free 是 c/c++ 标准库函数,new 和 delete 是 c++的运算符。运算符 :编译器能够识别并且对运算符语句进行编译。malloc 和 free 只是动态申请内存和释放内存。new 和 delete 是经过c++编译器解析为:动态申请内存,转换指针类型,调用对象构造函数 (new的解析) 和 调用对象析构函数,释放内存(delete 的解析)。new, delete, new[], delete[转载 2022-03-01 14:33:01 · 242 阅读 · 0 评论 -
面向对象上的单一类
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-11-21 13:43:46 · 506 阅读 · 0 评论 -
C++面向对象设计模式
什么是设计模式每一个模式描述了一个在我们周围不断重复发生问题以及该问题的解决方案核心。这样你就可以一次又一次的使用该方案而不必要做重复的劳动。面向对象的两种思想底层思维:语言实现方面的思想,封装,继承,多态。抽象思维:隔离变化(将变化带来的影响减为最小),各司其职(接口一样,但是具体实现不一样),解决复杂性的问题分解问题:将复杂的问题分解为许多简单的问题,一个一个解决抽象问题:把握问题的核心思想,构建范化模型,先不考虑细节。变化 和 复用在设计模式中,要保证不断变化的过程中,程序的复用性还原创 2022-01-03 11:01:40 · 826 阅读 · 0 评论 -
C++基础
有无符号类行转换在计算过程中,即有有符号类型对象 和 无符号类型对象,那么有符号类型对象会转为无符号类型对象。顶层const在指针中,指针本身是一个对象,但是指针也指向一个对象,const 修饰指针就有着两种意思。当const修饰指针对象时称为顶层const ,修饰指针指向的对象时称底层const。const int *p = nullptr; //修饰指针指向的对象,底层constint const *p = nullptr; //修饰指针指向的对象,底层constint * const p原创 2022-02-09 21:03:29 · 627 阅读 · 0 评论 -
C++STL
模板型别模板:模板缺省数据类型,在使用时传入数据类型,数据类型不同,定义的类也不同。非型别模板:模板缺省数据变量,在使用时传入数据类型变量,变量值不同,定义的类也不同。default 模板参数:和函数默认形参一样,在缺省的情况下,使用默认模板参数,且 默认模板参数 和 默认函数形参都是放在最右边。typename 关键字:在类中出现 A::type *ptr;编译器一般认为 A::type 是一个类的数据成员,关键字 typename 告诉编译器 A::type 是一个数据类型。模板成员:使用模板原创 2022-02-09 20:57:02 · 280 阅读 · 0 评论 -
C++体系结果
网站cplusplus,comcppreference.comgcc.gnu.orgSTL 六大部件(Components)容器(containers):存放数据的地方。分配器(allocators):数据需要内存地址需要分配器来实现,分配器一般作用在容器中算法(algorithms): 实现数据的处理迭代器(iterator): 数据不能处理容器,而是容器内的数据,迭代器负责区容器内的数据适配器(adapters):数据之间的转换使用到适配器仿函式(functors): 像函数的处理方原创 2022-02-09 21:01:13 · 193 阅读 · 0 评论 -
C++部分知识总结
endl 操纵符的作用:将内存中缓存的数据刷新到设备中,调式信息时,最好都要 使用 endl 作为调试结束符。“引用”:将左值和右值绑定在一起,即左值是右值的别名,引用必须初始化。引用没有赋值这一说法。引用只能作用在对象上。不能作用在 字面值 或是表达式的结果上。指针:在c++中 最好 是用 nullptr 表示空指针。指针也是一个对象,所以指针也可以引用...原创 2022-02-09 21:02:24 · 329 阅读 · 0 评论 -
面向对象上带有指针的类
析构函数,拷贝构造函数, 拷贝赋值函数析构函数:在对象离开作用域时,对象会结束声明周期,对象会自动调用析构函数。拷贝构造函数:在创建一个的对象时,传入的参数为相同类的对象,将传入的参数的内容初始化为新对象的内容,编译器默认是对象内容的拷贝。拷贝赋值函数:先创建出一个对象,然后再将右值对象的内容直接拷贝到左值的对象内容中。带有指针的类 和 不带有指针的类 在 big tree中的区别不带有指针的类:可以不用实现析构函数,拷贝构造函数,拷贝赋值函数,因为对象的内容则是对象的全部。带有指针的类:一定要原创 2021-11-22 19:21:00 · 508 阅读 · 0 评论 -
C++11 &14
… 多个类型参数在c++新特性中增加不定参数的设定templatevoid print(const T& arg){}template<typename T, typename … Type>void print(const T& first, const Type&… args){cout << first << endl;print(args…)}可以实现多个不同类型的参数nullptr使用 nullptr 代替原创 2022-02-09 21:01:51 · 140 阅读 · 0 评论 -
数据结构和算法
全排列一个字符串全排类 是 N 的阶层。组合一个字符串的组合为 2 N次方减一。-原创 2022-02-09 20:56:47 · 182 阅读 · 0 评论 -
虚指针(vptr) 和 虚表(vtbl)
虚指针在类中,一个对象的大小取决于类内的数据成员的大小之和。但是如果类存在着虚函数,不管虚函数的多少。那么类的大小是数据成员之和 + 一个虚指针(指向虚表)。每个存在着虚函数的类,都会有一个对应的虚表,虚表里面都是函数指针,他们分别指向自己的对应的虚函数。如果继承了父类,且实现了相应的虚函数,那么子类的虚表中,不会存在实现了子类虚函数对应的父类虚函数。而没有实现的父类虚函数则会存在子类的虚表中。绑定前提:执行到某一条指令时。需要调用某个函数静态绑定:编译器直接编译为调用该函数的地址。动待绑定:编译原创 2022-02-09 21:02:05 · 734 阅读 · 0 评论 -
c++中含有 static ,以及 面向对象的三种类型
static在类中只有数据成员才会占用内存,每创建一个对象,没有 static 修饰的数据成员会被创建一份,有static 修饰的数据成员无论创建对少此对象,在内存中只有一份。在类中 没有static 修饰的函数成员被调用时会将对象地址当作参数传入函数中,而有static 修饰的函数成员被调用时没有对象地址这一说法,static 修饰的函数成员就是为了在对象没有被创建前也可以调用函数去修改 static 修饰的数据成员,当然对象也可以修改static 此u是的数据成员。复合,委托,继承复合:类中有其原创 2021-11-23 22:24:32 · 384 阅读 · 0 评论 -
const 与类型别名
typedef 与 using为类型取别名有量中使用方法typedef double wages; (wages 与 double 是同意)typedef wages base, *p; (base 与 wages 是同意,故 base 是 double, p 与 wages * 同意,故 p 是 double)using si = wages; (wages 与 si 是同意,故 si 是 double)constconst 修饰的函数或是变量时,是告诉编译器,该属性会不变。这里只描述关于原创 2021-12-04 08:53:43 · 1105 阅读 · 1 评论