![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++学习记录
文章平均质量分 93
才文嘉
这个作者很懒,什么都没留下…
展开
-
C++继承模型的内存布局
C++继承模型的内存布局对于多继承情况考虑示例代码struct Base1 {...};struct Base2 {...};struct Derived : Base1, Base2 {...};有如下内存布局首先出现的是派生类Derived类的虚表指针vptr(这里插入一个提醒:一直以来vptr都被国人翻译为虚函数表指针但是vtbl英文原文是virtual table并非virtual function table。为什么呢因为这个表不只是为了虚函数而准备的一切虚拟化技术都会用这个表转载 2021-01-20 18:01:33 · 338 阅读 · 1 评论 -
从零开始:编写一个Web服务器---HTTP部分详细讲解以及代码实现(一)
HTTP部分详细讲解以及代码实现HTTP---Hyper Text Transfer Protocol(超文本传输协议)HTTP请求过程HTTP请求分类状态码(Status-Code)如何实现HTTP部分?分析功能Client与Server共有功能Client专属功能Server专属功能代码实现本文是从零开始Web服务器的第二篇,本篇将正式从代码入手讲解整个网络编程给出笔者学习期间接触到的Web服务器代码(C/C++)连接https://github.com/EZLippi/Tinyhttpdht原创 2021-01-16 22:00:21 · 3815 阅读 · 2 评论 -
STL学习-----list使用简要总结
文章目录List使用简要总结(链表)List 介绍List 构造函数List 赋值和交换List大小操作List插入和删除List数据存取List反转和排序List使用简要总结(链表)List 介绍List采用动态存储分配,不会造成内存浪费和溢出,可以通过修改指针来完成插入和删除,但是对于遍历消耗较大。同时,list的插入和删除都不会造成原有的迭代器失效(与vector不同)List 构...原创 2020-02-03 15:36:46 · 162 阅读 · 0 评论 -
STL学习-----stack容器简要使用总结
文章目录Stack (栈)构造函数赋值操作数据存取大小操作Stack (栈)构造函数stack<T> stk; //采用模板类实现,stack对象的默认构造形式stack(const stack &stk); //拷贝构造赋值操作stack& operator=(const stack &stk); //重载=数据存取push(el...原创 2020-02-03 14:48:43 · 183 阅读 · 0 评论 -
STL-----Deque容器使用简要总结
文章目录Deque容器使用简要总结Deque容器的基本概念Deque构造函数函数原型示例Deque赋值操作函数原型示例Deque大小操作函数原型示例Deque容器使用简要总结Deque容器的基本概念双端数组,可以对头端进行插入删除操作(双端队列)头文件为dequedeque与vector的区别vector对于头部的插入与删除效率极低vector访问元素的速度要比deque快,这与内...原创 2020-02-03 12:34:22 · 232 阅读 · 0 评论 -
STL学习-----Vector容器使用简要总结
文章目录Vector 使用简要总结Vector 构造函数Vector 常用的赋值操作v.assign() 调用重载=操作符Vector 使用简要总结Vector 构造函数 vector<T> v;//采用模板类实现类实现,默认构造函数 vector(v.begin(), v.end());//将v[begin(),end())区间中的元素拷贝给本身 vector(n, ele...原创 2020-02-02 22:05:00 · 169 阅读 · 0 评论 -
STL学习-----String容器使用简要总结
文章目录String容器使用简要总结String基本概念String构造函数构造函数原型示例String 赋值操作赋值函数原型示例String字符串拼接函数原型示例String查找和替换函数原型示例String 字符串比较比较方式函数原型示例字符存取函数原型示例String 插入和删除函数原型示例获取子串函数原型示例String容器使用简要总结String基本概念本质:string是C+...原创 2020-02-02 18:57:17 · 335 阅读 · 0 评论 -
C++ STL初识
文章目录STL的诞生STL的基本概念STL六大组件STL中容器、算法、迭代器容器:算法迭代器STL的诞生长久以来,软件界一直希望建立一种可重复利用的东西C++的面向对象和泛型编程思想,目的就是复用性的提升大多数情况下,数据结构和算法都未能有一套标准,导致被迫从事大量的重复工作为建立数据结构和算法的一套标准,诞生了STLSTL的基本概念STL(Standard Template ...原创 2020-02-02 15:41:29 · 143 阅读 · 0 评论 -
函数模板
文章目录函数模板语法语法解释示例函数模板案例函数模板语法函数模板作用:建立一个通用函数,其函数返回值类型和形参类型可以不具体制定,用一个虚拟的类型来代表语法template <typename T>解释template ---- 声明创建模板typename ---- 表明其后面的符号是一种数据类型,可以用class代替T ---- 通用数据类型,名称可以替换,通...原创 2020-02-02 11:36:25 · 117 阅读 · 0 评论 -
5 C++文件操作
文章目录文件类型文件打开方式操作文件写文件读文件程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放通过文件可以将数据持久化C++中对文件操作需要包含头文件<fstream>文件类型文本文件 --文件以文本的ASCII码形式存储在计算机中二进制文件 – 文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们文件打开方式打开方式解释...原创 2020-02-01 22:25:32 · 81 阅读 · 0 评论 -
4.7.6 多态案例3--电脑组装
文章目录案例描述示例案例描述电脑的组成:CPU,显卡,内存条将每个零件封装成抽象基类,并且提供不同的厂商生产不同的零件,创建电脑类提供让电脑工作的函数,并且调用每个零件工作的接口测试时组装三台不同的电脑进行工作示例#include <iostream>#include <vector>#include <cstdlib>#include <...原创 2020-02-01 21:22:01 · 297 阅读 · 0 评论 -
4.7.5 虚析构和纯虚析构
文章目录虚析构和纯虚析构的共性:虚析构和纯虚析构的区别语法示例虚析构纯虚析构多态使用时,如果子类中有属性开辟到堆区,那么父类指针在释放时无法调用到子类的析构代码解决方式:将父类中的析构函数改为虚析构或者纯虚析构虚析构和纯虚析构的共性:可以解决父类指针释放子类对象都需要有具体的函数实现虚析构和纯虚析构的区别如果是纯虚析构,该类属于抽象类,无法实例化对象语法虚析构语法v...原创 2020-02-01 19:34:02 · 175 阅读 · 0 评论 -
4.7.4 多态案例2--做奶茶
案例描述利用多态技术实现,提供抽象制作饮品基类,提供子类制作咖啡和茶叶示例#include <iostream>#include <vector>#include <cstdlib>using namespace std;class AbstractDrinking{public: //烧水 virtual void Boil() = ...原创 2020-02-01 14:40:37 · 244 阅读 · 0 评论 -
4.7.3 纯虚函数和抽象类
在多态中,通常父类中虚函数的实现是毫无意义的,主要都是调用子类重写的内容。因此可以将虚函数改为纯虚函数纯虚函数语法:virtual 返回值类型 函数名 (参数列表) =0;当类中有了纯虚函数,这个类也成为抽象类抽象类特点无法实例化对象子类必须重写抽象类中的纯虚函数,否则也属于抽象类示例//以计算器类为例class AbstractCaculator{public: vi...原创 2020-02-01 14:28:57 · 92 阅读 · 0 评论 -
4.7.2 多态案例--计算器类
4.7.2 多态案例--计算器类案例描述多态的优点示例案例描述分别利用普通写法和多态技术,设计实现两个操作数进行运算的计算器类多态的优点代码组织结构清晰可读性强利于前期和后期的扩展以及维护示例#include <iostream>#include <vector>#include <cstdlib>using namespace st...原创 2020-02-01 12:29:10 · 316 阅读 · 0 评论