摘要: 比如定义: struct Test {}; 使用sizeof(Test)可以查看到内存占用并不是0,而是1字节。 原因主要有两点: 一是用于对象标识:在C++中,每个对象都需要有一个唯一的地址。如果空类或结构体的大小为0字节,那么创建两个这样的对象时,它们在内存中的地址将是相同的,这与C++的对象模 阅读全文
posted @ 2024-09-14 10:55 阿玛尼迪迪 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 一、universal references(通用引用) 当右值引用和模板结合的时候T&&并不一定表示右值引用,它可能是个左值引用又可能是个右值引用。例如: 1 template<typename T> 2 void f( T&& param){ 3 4 } 5 f(10); //10是右值 6 i 阅读全文
posted @ 2024-09-14 09:22 阿玛尼迪迪 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 一、何为多态 多态(polymorphism)指为不同数据类型的实体提供统一的接口,或使用单一的符号来表示多个不同的类型。比如我们熟悉的函数重载、模板技术,都属于多态。无论是模板还是函数重载,都是静态绑定的。也就是说,究竟该调用哪个重载函数或者说调用哪个模板类的实例化,在编译期就是确认的。虚函数也是 阅读全文
posted @ 2024-09-13 22:41 阿玛尼迪迪 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 一、TCP状态转移图说明 图1.TCP状态转移图 这张图展示了 TCP(Transmission Control Protocol,传输控制协议)的状态转移图,描述了 TCP 连接在不同阶段之间的状态变化和相互转换。 (一)、建立连接(三次握手) 图2.TCP三次握手示意图 1、服务器准备好接受外来 阅读全文
posted @ 2024-07-31 14:00 阿玛尼迪迪 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 在 C 语言中,container_of 是一个宏定义,可以通过指向结构体中的成员来获取该结构体的地址。它的定义如下: #define container_of(ptr, type, member) \ ((type *)((char *)(ptr) - offsetof(type, member) 阅读全文
posted @ 2023-04-07 10:48 阿玛尼迪迪 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 对于前置单目运算符,重载函数没有形参,对于后置单目运算符,重载函数有一个int型形参。这个int型参数在函数体中并不使用,纯粹是用来区别前置与后置,因此参数表中可以只给出类型名,没有参数名。 1 #include <iostream> 2 3 using namespace std; 4 5 cla 阅读全文
posted @ 2021-03-07 15:54 阿玛尼迪迪 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 一、当为取地址操作符重载 取地址成员函数是“类的六大默认成员函数之一”。其分为两种,普通取地址操作符和const取地址操作符。 取地址是什么意思呢?就是返回当前对象的地址,对于成员函数来讲,this指针就是它的地址。 将'&'重载重载为成员函数时,是否需要传参? Date* operator&() 阅读全文
posted @ 2021-03-07 15:33 阿玛尼迪迪 阅读(1284) 评论(0) 推荐(0) 编辑
摘要: 一、std::thread类 (一)thread类摘要及分析 class thread { // class for observing and managing threads public: class id; using native_handle_type = void*; thread() 阅读全文
posted @ 2021-03-07 14:39 阿玛尼迪迪 阅读(1688) 评论(0) 推荐(0) 编辑
摘要: std::move 函数在 C++ 标准库中实际上是一个非常简单的函数模板。它的主要目的是将一个对象强制转换为一个右值引用(rvalue reference),从而允许在后续的操作中对其进行移动语义(而不是复制语义)。这在处理资源密集型对象(如动态分配内存的对象)时特别有用,因为它可以避免不必要的资 阅读全文
posted @ 2021-03-02 21:29 阿玛尼迪迪 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 一、前言 缓冲区在文件系统中经常用到,通过缓冲区缓解cpu读写内存和读写磁盘的速度。例如一个进程A产生数据发给另外一个进程B,进程B需要对进程A传的数据进行处理并写入文件,如果B没有处理完,则A要延迟发送。为了保证进程A减少等待时间,可以在A和B之间采用一个缓冲区,A每次将数据存放在缓冲区中,B每次 阅读全文
posted @ 2021-02-28 15:28 阿玛尼迪迪 阅读(474) 评论(0) 推荐(0) 编辑