- 博客(5)
- 收藏
- 关注
原创 muduo网络库项目总结
EpollPoller -- epoll的封装,每个EventLoop里都有一个epoll,它就作为事件分发器,当channel发生事件后,返回发生事件的channel给Eventloop,然后再调用channel上的回调。TcpServer -- 启动类,负责创建整个server,里面包含一个Acceptor,负责接受新用户连接,然后把连接分给EventLoop,并且创建TcpConnection。Channel -- fd的封装,里面包含了fd发生状态变化时应该调用哪个回调。
2023-10-09 12:49:03
57
1
原创 C++智能指针
智能指针为什么需要智能指针裸指针存在的问题裸指针是平常定义的普通指针,他有许多的问题,主要是以下这些:1.难以区分指向的是单个对象还是一个数组;2.使用完指针之后无法判断是否应该销毁指针,因为无法判断指针是否“拥有”指向的对象;3.在已经确定需要销毁指针的情况下,也无法确定是用delete关键字删除,还是有其他特殊的销毁机制,例如通过将指针传入某个特定的销毁函数来销毁指针;4.即便已经确定了销毁指针的方法,由于1的原因,仍然无法确定到底是用delete(销毁单个对象)还是delete[ ]
2022-02-23 22:53:58
376
原创 C++ this指针
C++对象存储方案 方案一是为每个对象都分配全套的内存,包括了成员属性和成员方法,但是实际上对象之间只有属性是不同的,因此方案一会浪费大量的内存。方案二是让每个对象使用共同的代码区,分别保存各个对象的成员属性,这样会节省很多内存,但是在调用成员方法时则需要区分,因此,c++提供了this指针用来使每个对象可以操作同一片代码区。this指针的原理编译器针对程序员自己设计的类型分三次编译第一:识别和记录类体中属性的名称,类型和访问限定,与属性在类体中的位置无关。如class CGood.
2022-01-07 14:10:36
226
原创 C和C++的区别
目录1.输入与输出2.引用3.inline 内联函数4.函数默认值5.函数重载6.函数模板7.new/delete8.namespace1.输入与输出C:scanf_s();printf();C++cin<<cout<<2.引用引用符号:&可以理解为取别名,对引用的操作等于对本身变量的操作。b=10;int &a = b;在函数中使用,可以直接将形参的值进行修改,因为他...
2022-01-07 12:04:52
283
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人