摘要:
可以参考这篇文章:https://www.xiaolincoding.com/os/6_file_system/file_system.html#阻塞与非阻塞-i-o-vs-同步与异步-i-o 阅读全文
摘要:
比如定义: struct Test {}; 使用sizeof(Test)可以查看到内存占用并不是0,而是1字节。 原因主要有两点: 一是用于对象标识:在C++中,每个对象都需要有一个唯一的地址。如果空类或结构体的大小为0字节,那么创建两个这样的对象时,它们在内存中的地址将是相同的,这与C++的对象模 阅读全文
摘要:
一、universal references(通用引用) 当右值引用和模板结合的时候T&&并不一定表示右值引用,它可能是个左值引用又可能是个右值引用。例如: 1 template<typename T> 2 void f( T&& param){ 3 4 } 5 f(10); //10是右值 6 i 阅读全文
摘要:
一、何为多态 多态(polymorphism)指为不同数据类型的实体提供统一的接口,或使用单一的符号来表示多个不同的类型。比如我们熟悉的函数重载、模板技术,都属于多态。无论是模板还是函数重载,都是静态绑定的。也就是说,究竟该调用哪个重载函数或者说调用哪个模板类的实例化,在编译期就是确认的。虚函数也是 阅读全文
摘要:
一、TCP状态转移图说明 图1.TCP状态转移图 这张图展示了 TCP(Transmission Control Protocol,传输控制协议)的状态转移图,描述了 TCP 连接在不同阶段之间的状态变化和相互转换。 (一)、建立连接(三次握手) 图2.TCP三次握手示意图 1、服务器准备好接受外来 阅读全文
摘要:
在 C 语言中,container_of 是一个宏定义,可以通过指向结构体中的成员来获取该结构体的地址。它的定义如下: #define container_of(ptr, type, member) \ ((type *)((char *)(ptr) - offsetof(type, member) 阅读全文
摘要:
对于前置单目运算符,重载函数没有形参,对于后置单目运算符,重载函数有一个int型形参。这个int型参数在函数体中并不使用,纯粹是用来区别前置与后置,因此参数表中可以只给出类型名,没有参数名。 1 #include <iostream> 2 3 using namespace std; 4 5 cla 阅读全文
摘要:
一、当为取地址操作符重载 取地址成员函数是“类的六大默认成员函数之一”。其分为两种,普通取地址操作符和const取地址操作符。 取地址是什么意思呢?就是返回当前对象的地址,对于成员函数来讲,this指针就是它的地址。 将'&'重载重载为成员函数时,是否需要传参? Date* operator&() 阅读全文
摘要:
一、std::thread类 (一)thread类摘要及分析 class thread { // class for observing and managing threads public: class id; using native_handle_type = void*; thread() 阅读全文
摘要:
std::move 函数在 C++ 标准库中实际上是一个非常简单的函数模板。它的主要目的是将一个对象强制转换为一个右值引用(rvalue reference),从而允许在后续的操作中对其进行移动语义(而不是复制语义)。这在处理资源密集型对象(如动态分配内存的对象)时特别有用,因为它可以避免不必要的资 阅读全文