avatar
文章
45
标签
1
分类
12

主页
博文
  • 分类
  • 标签
  • 归档
友链
关于笔者
ahao的休憩小屋
主页
博文
  • 分类
  • 标签
  • 归档
友链
关于笔者

ahao的休憩小屋

C++20设计模式-7-桥接模式
发表于2024-09-15|更新于2024-10-13|C++20设计模式
7.1 Primpl模式1234567891011121314151617181920212223242526272829303132333435363738394041#include <iostream>#include <string>#include <cstdio>struct Person{ std::string name; void greet(); Person(); ~Person(); class PersonImpl; PersonImpl *impl;};struct Person::PersonImpl{ void greet(Person* p);};Person::Person() : impl(new PersonImpl) {}Person::~Person() { delete impl; }void Person::gre ...
C++20设计模式-6-适配器模式
发表于2024-09-06|更新于2024-10-13|C++20设计模式
6.1 预想方案1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859#include <iostream>#include <vector>#include <memory>struct Point{ int x, y;};struct Line{ Point start, end;};struct VectorObject{ virtual std::vector<Line>::iterator begin() = 0; virtual std::vector<Line>::iterator end() = 0;};struct VectorRectangle : VectorObject{ VectorRectangle( ...
C++20设计模式-5-单例模式
发表于2024-09-03|更新于2024-10-13|C++20设计模式
5.1 作为全局对象的单例模式12345678910111213141516171819#include <iostream>struct Database{ Database() {}};Database& get_database(){ static Database database; return database;}int main(void){ Database& sf = get_database(); return 0;} 5.2 单例模式的经典实现1234567891011121314151617181920212223242526272829303132333435#include <iostream>/*struct Database{ Database() { static int instan ...
数据结构-红黑树
发表于2024-08-31|更新于2024-08-31|数据结构
概念1.每个结点是红的或者黑的2.根结点是黑的3.每个叶子结点是黑的4.如果一个节点是红的,则它的两个儿子都是黑的5.对每个节点,从该结点到其子孙结点的所有路径上包含相同数量的黑节点 旋转1.左旋2.右旋 x 左旋-> y ↖ ↗ y <-右旋 x
项目琐屑-webserver
发表于2024-08-31|更新于2024-09-17|项目琐屑
webserver所需要的基础知识编程语言 基本的C/C++语法 C++11的特性(智能指针、function等),能够掌握C++14/17更好 操作系统 基本的linux指令 常见的系统调用 计算机网络 TCP和UDP的连接机制及对应的函数 常见的服务器模式,单对单、多对单、多对多 抓包工具的简单使用,如tcpdump 数据库 常用的MySQL语句 数据库的安装 项目中的难点 一部分是去服务器网络框架、日志系统、存储引擎等一些基本系统的搭建,这部分的难点主要就是技术的理解和选型,以及一些开源的框架调整后应用到我的项目中去。 另一部分是为了提高服务器性能所做的一些优化,比如缓存机制、内存池等一些额外系统的搭建。这部分难点主要是找出服务器的性能瓶颈,然后结合自己的想法去突破这个瓶颈,提高服务器性能 针对项目做了哪些优化程序本身 减少了程序等待IO的事件: 非阻塞IO + IO多路复用 设计高性能网络框架,同步IO(主从reactor + 线程池) 和异步IO(proactor) 【减少系统调用】 避免频繁申请/释放内存: 线程池、内存池和缓存机制 ...
工厂模式群
发表于2024-08-30|更新于2024-10-13|随写笔记
1.创建方法概念: 这类方法将”调用构造函数生成对象”这个过程进行包装作用: 将对象的创建细节进行隐藏, 并更好的体现代码意图, 从而增强代码的可维护性 模式图: Department(部门) Programmer(程序员) 123456789101112131415struct Programmer {};struct Department { //核心: 封装了Programmer类对象的创建细节, 并为这个过程设置了与业务流程相关性更强的名字 auto createEmployee() { return new Programmer(); }};int main(void){ Department department{}; department.createEmployee(); //... return 0;} 2.静态创建方法概念: 将原有的, 作为类成员函数的创建方法修改为一个类静态方法 模式 ...
C++20设计模式-4-原型模式
发表于2024-08-30|更新于2024-09-03|C++20设计模式
4.2 普通拷贝123456789101112131415161718192021222324252627#include <iostream>class Address{public: std::string street, city; int suite;};class Contact{public: std::string name; Address address;};int main(void){ Contact worker{"", Address{"123 East Dr", "London", 0}}; Contact john = worker; john.name = "John Doe"; john.address.suite = 10; return 0;&# ...
Qt6 C++开发指南读书笔记-
发表于2024-08-30|更新于2025-01-26|Qt6 C++开发指南
Qt6 C++开发指南读书笔记-元对象系统概述
发表于2024-08-30|更新于2024-10-13|Qt6 C++开发指南
Qt的元对象系统的功能建立基础 QObject类是所有使用元对象系统的类的基类 必须在一个类的开头部分插入宏Q_OBJECT,这样这个类才可以使用元对象系统的特性 MOC为每个QObject的子类提供必要的代码来实现元对象系统的特性 构建项目时,MOC会读取C++源文件,当他发现类的定义里有Q_Object宏时,他就会为这个类生成另一个包含元对象支持代码的C++源文件,这个生成的源文件连同类的实现文件一起被标准C++编译器编译和连接。 QObject类简述QObject类是所有使用元对象系统的类的基类,也就是说,如果一个类的父类或上层父类时QObject,它就可以使用信号与槽、属性等特性。 QObject类与元对象系统特性相关的函数元对象QMetaObject *metaObject() 返回这个类的元对象QMetaObject staticMetaObject 这是类的静态变量,不是函数,存储了类的元对象 类型信息bool inherits() 判断这个对象是不 ...
C++20设计模式-3-工厂方法和抽象工厂模式
发表于2024-08-30|更新于2024-10-13|C++20设计模式
3.1 预想方案12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152#include <iostream>struct Point2D{ int x; int y;};class Wall{ Point2D start, end; int elevation, height;public: Wall(Point2D start, Point2D end, int elevation, int height) : start{start}, end{end}, elevation{elevation}, height {height} { }};enum class Material{ ...
1…345
avatar
ahao
文章
45
标签
1
分类
12
Follow Me
公告
This is my Blog
最新文章
源码阅读 - filezilla(1)2025-08-05
面经 - 设计一个兑奖系统的测试用例2025-07-31
面经 - HNSW算法2025-07-31
面经 - LSH树的索引和KD树的索引2025-07-28
面经 - Qdrant数据库2025-07-28
分类
  • C++20设计模式9
  • Qt6 C++开发指南2
  • 名词说明3
  • 数据结构1
  • 深入理解Linux网络笔记2
  • 源码阅读1
  • 经历2
  • 软件设计师考试1
标签
书籍阅读笔记
归档
  • 八月 20251
  • 七月 20256
  • 六月 20257
  • 四月 202513
  • 一月 20251
  • 十月 20241
  • 九月 20244
  • 八月 202410
网站资讯
文章数目 :
45
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2025 By ahao
框架 Hexo|主题 Butterfly