随笔分类 -  C++

摘要:muduo的Reactor模式主要有3个类实现-Channel、Poller、EventLoop、定时器 1. 事件分发类 Channel (最终干活的) Channel是selectable IO channel,自始至终只负责一个 fd 的(注册与响应) IO 事件,但是不拥有该 fd ,所以也 阅读全文
posted @ 2021-04-01 23:49 demianzhang 阅读(493) 评论(0) 推荐(0)
摘要:https://sourceware.org/gdb/documentation/ 参考资料 gcc/g++常用编译选项和gdb常用调试命令 使用gdb调试程序完全教程 https://wizardforcel.gitbooks.io/100-gdb-tips/content/set-schedul 阅读全文
posted @ 2021-04-01 23:31 demianzhang 阅读(536) 评论(0) 推荐(0)
摘要:Effective C++:参考自harttle land 类的swap实现与STL容器是一致的:提供swap成员函数, 并特化std::swap来调用那个成员函数。 类模板的Swap 1.下面代码不能通过编译。C++允许偏特化类模板,却不允许偏特化函数模板 2. 不能向STL里面添加新的东西,重载 阅读全文
posted @ 2018-07-12 20:15 demianzhang 阅读(407) 评论(0) 推荐(0)
摘要:1. new,delete 与 malloc,free的区别:melonstreet 1. 申请的内存所在位置 2.返回类型安全性 3.内存分配失败时的返回值 4.是否需要指定内存大小 5.是否调用构造函数/析构函数 6.对数组的处理 7.new与malloc是否可以相互调用 8.是否可以被重载 9 阅读全文
posted @ 2018-07-09 01:31 demianzhang 阅读(4691) 评论(0) 推荐(0)
摘要:转自:jihite 构造函数、析构函数、赋值函数是每个类最基本的的函数。每个类只有一个析构函数和一个赋值函数。但是有很多构造函数(一个为复制构造函数,其他为普通构造函数。对于一个类A,如果不编写上述四个函数,c++编译器将自动为A产生四个默认的函数,即: A(void) //默认无参数构造函数 A( 阅读全文
posted @ 2017-08-17 00:06 demianzhang 阅读(224) 评论(0) 推荐(0)
摘要:转自:http://blog.csdn.net/xsh_123321/article/details/5956289 1.为什么需要虚继承 如下图所示如果访问Der::Fun or Der::m_nValue就会带来二义性,无法确定是调用Base1的还是Base2的,所以为了解决多重继承情况下成员访 阅读全文
posted @ 2017-03-12 16:35 demianzhang 阅读(8075) 评论(0) 推荐(1)
摘要:转自:http://glatue.com/category/basic-knowledge/ 场景 如果一个类会被作为基类,那么基类的析构函数最好声明为虚函数。 原因是为了避免下面这样的操作,造成派生类的析构函数不能被调用。 Base *d = new Drived(); delete d; //如 阅读全文
posted @ 2017-03-12 16:13 demianzhang 阅读(928) 评论(0) 推荐(0)