C++ CRTP
CRTP(curiously recurring template pattern, 奇异递归模式),这个名字奇怪的模式,是一种将继承和静态多态结合的技术。 多态是一种用单个统一的符号将多种特定行为关联起来的能力,是面向对象编的基石,在 C++中它主要由继承和虚函数实现。由于这一机制主要(至少是一部分)在运行期间起作用,因此我们称之为动态多态(dynamic polymorphism...
CRTP(curiously recurring template pattern, 奇异递归模式),这个名字奇怪的模式,是一种将继承和静态多态结合的技术。 多态是一种用单个统一的符号将多种特定行为关联起来的能力,是面向对象编的基石,在 C++中它主要由继承和虚函数实现。由于这一机制主要(至少是一部分)在运行期间起作用,因此我们称之为动态多态(dynamic polymorphism...
最近在进行开发的时候,看到了一个之前没有见过的写法,即父类的引用指向子类对象,指针指向子类对象之前经常见,引用确实少见,因此记录一下: 例如现在有如下代码示意: Base tmp; Son son; Base& ref = son; ref = tmp; 当执行ref = tmp之后,son对象会有什么变化呢? 在 C++ 中,赋值操作 ref = tmp; 会调用 Bas...
1. 系列函数 backtrace()系列函数有3个:backtrace,backtrace_symbols,backtrace_symbols_fd。主要用于应用程序反调试(self-debugging)。 参见man 3 BACKTRACE,3个函数原型: #include <execinfo.h> int backtrace(void **buffer, int s...
1. 关于std::bind std::bind是函数模板(是一个函数)。 使用std::bind可以将可调用对象和参数一起绑定,绑定后的结果使用std::function进行保存,并在我们需要的任何时候调用。 std::bind返回一个基于f的函数对象,其参数被绑定到args上。f的参数要么被绑定到值,要么被绑定到placeholders(占位符,如_1, _2, …, _n)。即,...
ssize_t readlink(const char *path, char *buf, size_t bufsiz); /proc/self/exe是一个符号链接,代表当前程序的绝对路径 用readlink读取/proc/self/exe可以获取当前程序的绝对路径 int GetexeFilePath() { char szFilePath [255]; memset(szFil...
参考链接: https://www.miaoerduo.com/2023/01/19/cpp-object-model/ https://www.cnblogs.com/pandamohist/p/13882020.html 前言 C++的三大特性是封装、继承和多态。 本节内容将详细介绍单一继承、多重继承、重复继承、虚拟继承等不同的继承方式的对象内存模型。 ...
1. C语言可变参数 c中典型的变参函数是我们已经用得非常熟练的printf和scanf函数,它们都可以接受不确定个数的参数,它们的函数声明形式如下: int printf(const char *format, ...); int scanf(const char *format, ...); 两个函数后面的...是占位符,并不是参数,而是告诉编译器,该函数是变参函数,不管该函数使...
1. 位操作基础 基本的位操作符有与、或、异或、取反、左移、右移这6种,它们的运算规则如下所示: 符号 描述 运算规则 & 与 两个位都为1时,结果才为1 | 或 两个位都为0时,结果才为0 ...
参考链接:https://www.midlane.top/wiki/pages/viewpage.action?pageId=26183116 1.补码与浮点数 计算机采用二进制表示数据,但是从数学意义上,使用二进制并不能表示负数。因为二进制每一位的权值都大于0。为了解决这个问题,人们在二进制数据上使用了符号位,通过符号位来表示数据的正负。符号位是数据的最高位,当这一位为0时,表示数据...
1.指针数组 指针数组可以说成是”指针的数组”,首先这个变量是一个数组,其次,数组的所有元素都是指针类型,在32位系统中,指针占四个字节。 char* arr[4] = {"hello", "world", "zhejiang", "hangzhou"}; //arr就是我定义的一个指针数组,它有四个元素,每个元素是一个char *类型的指针,这些指针存放着其对应字符串的首地址。 这...