![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
c++
汪汪要努力呀
这个作者很懒,什么都没留下…
展开
-
【C++】——类的大小
文章目录一、空类二、继承三、虚继承有了关于继承、虚继承等相关知识的了解。现在我们主要针对类的大小问题来做一个具体的探讨吧。一、空类1、真空类class CNull{};大小就是1主要是因为空类还是要被实例化的,为了保证每个实例在内存中都有独一无二的地址。编译器就给空类隐含的增加了一个字节。2、空类class CNull2{public: CNull2(){printf("Construct/n");} ~CNull2(){printf("Desctruct/n");原创 2020-08-31 16:38:35 · 330 阅读 · 0 评论 -
【STL】——迭代器
1、迭代器之按照定义划分2、迭代器之按常性划分3、迭代器之按功能划分3.1反转型(反向型)迭代器3.1插入型迭代器3.2流式迭代器原创 2020-08-11 21:43:32 · 216 阅读 · 0 评论 -
【STL】——泛型算法和函数对象
1、引言2、自己实现一个find函数3、函数对象原创 2020-07-23 22:20:55 · 170 阅读 · 0 评论 -
【STL】——顺序容器
1、引言2、vector(数组)2.1基本操作2.2扩容机制2.3对容器进行连续插入或者删除操作时迭代器失效问题2.4特点3、list(双向循环链表)3.1基本操作3.2 特点4、deque(双端队列容器)4.1基本操作4.2扩容机制4.3特点5、区别5.1vector和list之间的区别5.2vector和deque之间的区别原创 2020-07-23 17:05:31 · 349 阅读 · 0 评论 -
【c++】——智能指针
1、auto_ptr2、带标志位的智能指针3、unique_ptr4、shared_ptr5、weak_ptr原创 2020-07-22 16:26:50 · 223 阅读 · 0 评论 -
【设计模式】——工厂模式
1、简单工厂模式2、工厂方法模式3、抽象工厂模式原创 2020-07-21 17:57:19 · 155 阅读 · 0 评论 -
【继承和多态】——多继承和虚基类
1、c++中几种继承方式2、虚基类2.1概念2.2虚基类和虚函数共存的情况2.3虚基类解决的菱形继承问题3、菱形继承的内存布局原创 2020-07-21 14:56:39 · 334 阅读 · 0 评论 -
【继承和多态】——纯虚函数和抽象类
1、纯虚函数和抽象类2、c++中的四种强制转换类型原创 2020-07-21 09:25:38 · 215 阅读 · 0 评论 -
【继承和多态】——多态
1、多态概述2、动多态设计思想2.1虚函数、虚函数表和虚函数指针2.2虚函数3、动多态的实现过程4、多态的发生时机4.1静态绑定和动态绑定4.2虚函数和动态绑定原创 2020-07-20 22:40:18 · 289 阅读 · 0 评论 -
【继承和多态】——继承和派生
1、继承1.1继承的本质和原理1.2继承方式2、派生2.1派生的内存布局和继承元素2.2派生对象的构造和析构方式3、继承和派生之间的关系3.1基类和派生类的相互指向或引用3.2同名函数之间的关系3.3类和类的关系原创 2020-07-20 20:43:45 · 345 阅读 · 0 评论 -
【c++】——内存池
1、引言1.1自主内存管理机制来源1.2静态链表的管理方式2、实现一个简单的链队内存池2.1内存池的管理方式2.2链队列的结点类2.3链队列的链表结构类3、实现一个通用内存池原创 2020-07-19 10:05:21 · 336 阅读 · 0 评论 -
【c++】深拷贝、浅拷贝和写时拷贝
1、浅拷贝2、深拷贝3、写时拷贝3.1设计思想3.2具体实现3.3引用计数的不足原创 2020-07-18 17:05:33 · 293 阅读 · 0 评论 -
【设计模式】——迭代器模式
1、迭代器的设计思想1.1基本原理1.2迭代器的使用2、针对于string类迭代器的具体实现3、实现vector容器的迭代器原创 2020-07-18 15:32:45 · 201 阅读 · 0 评论 -
【设计模式】——单例模式
1、设计模式1.1对设计模式的理解1.2设计模式的分类2、单例模式2.1设计思想2.2设计一个单例模式2.3单例模式的模型2.4单例模式的特点及改进策略1、解决方法1——双重锁机制下的单例模式2、解决方法2——在线程开启之前生成对象2.5懒汉模式和饿汉模式原创 2020-07-15 22:09:51 · 227 阅读 · 0 评论 -
【c++】——const详解
文章目录1、在.c中const 的用法2、在.cpp中const 的用法3、Const和static修饰的成员3.1const修改成员变量的处理3.2static修饰的成员变量4、int* const p和const int* p区别首先,我们要来明确一下,什么是const,在我们通常的观念里面,我们会认为下面这个代码是错误的。 const int b = 20; b = 30;因为const修饰的变量不能作为左值。初始化完成后值不能被修改。1、在.c中const 的用法在我之前的一篇博文中,原创 2020-07-15 20:01:04 · 1535 阅读 · 0 评论 -
【类和对象】——导入篇
1、c和c++的对比1.1面向过程的思想1.2面向对象的思想1.3c和c++的区别2、深入理解面向对象2.1面向对象特性——封装2.2struct和class的区别2.3this指针2.4构造函数和析构函数3、用类和对象的思想实现一个单链表原创 2020-07-14 21:38:35 · 207 阅读 · 0 评论 -
【类和对象】——拷贝构造函数和赋值运算符重载函数
1、类中6个默认成员函数2、拷贝构造函数1.1深拷贝、浅拷贝、写时拷贝1.2拷贝构造函数详解3、赋值运算符重载原创 2020-07-14 21:16:55 · 512 阅读 · 0 评论 -
【c++】——引用
1、引言1、引用的概念2、引用的特点2.1引用的处理流程2.2 引用和指针的区别3、const 和引用的结合4、普通变量指针和引用原创 2020-07-12 22:51:20 · 123 阅读 · 0 评论 -
【c++】——汇编后生成的xxx.o文件详解
1、目标文件的格式2、目标文件概述3、深入挖掘test.o3.1 .text段3.2 .data段和.rdata段3.3 bss段3.4 其他段4、ELF文件结构描述4.1 文件头4.2 段表5、链接的接口——符号5.1 符号修饰与函数签名5.2 extern"C"原创 2020-07-12 10:40:08 · 6553 阅读 · 3 评论 -
【c++】——形参带默认值的函数、内联函数、函数重载
1、形参带默认值的函数2、inline内联函数3、函数重载原创 2020-07-12 10:31:52 · 309 阅读 · 0 评论 -
【c++】——预编译、编译、汇编、链接和运行
文章目录一、预编译二、编译1、语法分析:2、语法分析3、语义分析4、中间语言生成5、目标代码生成与优化三、汇编四、链接在我们平常的应用程序开发的过程中,我们很少去关注编译和链接的过程,因为通常的开发环境都是集成的开发环境(IDE)首先,我们编写一个"hello word”的程序如下:在Linux下,当我们使用gcc来编译程序如下:实际上,上述过程,我们可以将其分为4个步骤分别是预处理...原创 2020-03-06 16:57:06 · 1143 阅读 · 0 评论 -
【c++模板】——STL向量容器vector以及容器空间配置器alloctor的实现
文章目录一、STL向量容器vector简单实现二、容器空间适配器allocator简单实现一、STL向量容器vector简单实现1、容器的定义首先,我们来了解一下什么是容器,他的书面解释各位可以百度,在这儿我们就用一种通俗的方式来解释他,容器就是保存其他对象的对象。而且这种对象还有处理其他对象的方法。C++采用基于模版的方式处理容器,STL中的容器提供了多种数据结构。2、vector容器...原创 2020-03-26 17:54:48 · 324 阅读 · 0 评论 -
【类和对象】——成员方法之间的关系、指向类成员的指针
1、this指针和成员方法之间的关系1、普通的成员方法2、静态成员方法3、常成员方法2、指向类成员的指针原创 2020-03-25 17:38:06 · 220 阅读 · 0 评论 -
【类和对象】——构造函数与析构函数
1、深入理解构造函数和析构函数1.1 构造函数1.2 析构函数1.3 其他特性1.4构造函数和析构函数的区别2、构造函数的初始化列表2.1 实现一个商品类2.2 构造函数的初始化列表和当前类类型构造函数体的区别2.3 构造函数的初始化列表练习3、不同对象的生命周期原创 2020-03-24 10:44:53 · 427 阅读 · 0 评论 -
【c++】——详解迭代器失效的底层原理
文章目录一、迭代器为什么会失效二、如何解决迭代器失效问题三、剖析迭代器失效底层原理1、成员变量vector一、迭代器为什么会失效在讲解这个问题之前,我们来模拟一些场景。场景一:把vec容器中所有的偶数全部删除代码实现如下:vector<int> vec; for (int i = 0; i < 20; i++) { vec.push_back(rand() % 1...原创 2020-03-27 20:53:48 · 963 阅读 · 0 评论 -
【c++】——数组指针和指针数组
这篇文章主要是来给大家讲一讲我们经常混淆的一个概念,指针数组和数组指针~一、基本概念(1)指针数组:是指一个数组里面装着指针。本质是数组。标准样式:*int ptr[](2)数组指针:指向数组的指针,指向整个数组。本质是指针标准样式:*int (ptr)[]二、例子说明(1)指针数组#include<iostream>using namespace std;int ...原创 2020-02-08 18:16:23 · 299 阅读 · 0 评论 -
【c++】——函数的堆栈调用详细过程
这篇文章,主要在汇编的角度为大家详细讲解函数的堆栈调用过程,首先我们引人一段程序,主要由此程序作为例子分析~#include<iostream>#include<string.h>using namespace std;int sum(int a, int b){ int temp = 0; temp = a + b; return temp;}int ...原创 2020-03-19 22:45:43 · 2219 阅读 · 1 评论 -
【c++】——进程虚拟地址空间
文章目录1、进程虚拟地址空间大小2、虚拟的含义3、空间分配情况4、具体空间指向总所周知,任何的编程语言都会产生指令和数据。例如下面一段代码#include<iostream>#include<string.h>using namespace std;int gdata1 = 10;int gdata2 = 0;int gdata3;static int ...原创 2020-03-19 20:27:55 · 526 阅读 · 0 评论 -
【c++]——两个数交换的函数
两个数的交换在我们编程过程中是常常遇到的,这篇文章就让我们来好好的理解一下这个函数的使用吧~函数形式参数到实际参数之间的传递有很多种,其中包括了值传递、参数传递、指针传递、引用传递等等。下面有五种函数,请问哪个能成功?第一种:void swap1(int p,int q){ int temp; temp = p; p = q; q = temp;}int main(){ ...原创 2020-02-08 17:29:40 · 6823 阅读 · 1 评论 -
【c++】——内存对齐问题
一、容易混淆的一些sizeof值二、结构体内存对齐1、内存对齐的基本含义2、对齐规则3、特殊情况原创 2019-03-13 17:15:53 · 153 阅读 · 0 评论 -
【STL】——关联容器
1、关联容器1.1基本概念1.2关联容器都有的函数2、set 详解2.1基本操作2.2特点3、map详解3.1基本操作3.2特点3.3关联容器在自定义类型下的使用原创 2020-04-03 15:54:17 · 337 阅读 · 0 评论 -
【c++】——c++的四种类型转换
1、const_cast他的主要作用就是去掉(指针或者引用)常量属性的类型转换。例如,当我们想将一个常量a的指针转成一个int*,在c语言中可以用如下的方式强制转换。int main(){ const int a = 10; int* p = (int*)&a; return 0;}但是在c++中,我们就有了const_cast,就可以使用如下的方式转换:int ...原创 2020-04-01 17:12:57 · 120 阅读 · 0 评论 -
【c++】——new和delete
文章目录一、new和delete的基本情况1、malloc和new的区别2、malloc和new、free和delete的区别3、new和delete能混用吗?c++为什么区分单个元素和数组的内存分配和释放?二、对象池一、new和delete的基本情况说到new和delete以及malloc和free大家已经很熟悉了吧,在我之前的一篇博文中也有提过相关的知识点,详情请见malloc和new1...原创 2020-03-28 17:00:59 · 141 阅读 · 0 评论 -
【运算符重载】——重载实现复数、string类
1、实现一个简单的运算符重载2、运算符重载实现复数类1、加法运算符重载2、输入输出运算符重载3、比较运算符3、运算符重载实现String类1、加法运算符重载2、比较运算符重载3、输入输出运算符重载原创 2020-03-26 22:00:14 · 609 阅读 · 0 评论 -
【模板】——函数模板
1、深入理解基础概念2、函数模板的编写规则3、函数模板的默认值原创 2020-03-25 20:10:25 · 219 阅读 · 0 评论 -
【c++】——内存的开辟和释放
1、malloc的用法2、c++和c中动态开辟和释放的对比使用3、new开辟内存的种类4、new和malloc的区别原创 2020-03-23 18:49:40 · 1793 阅读 · 0 评论