
c/c++
文章平均质量分 97
wenfh2020
个人博客 - wenfh2020.com
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
深入探索 C++ 多态 ③ - 虚析构
前两章探索了 C++ 多态的虚函数调用链路和继承关系,本章将探索虚析构的工作原理。具有虚析构多态特征的类对象,被释放时:有继承关系的多态类,会先析构派生类,再析构基类,与它的构造顺序刚好相反。类的析构函数被调用时,对象的 this 指针和虚指针会在对应的类内部被重新设置,this 指针指向当前类对象对应的内存位置,虚指针也会被重置指向当前类对应的虚表。释放当前派生类对象内存。深入探索 C++ 多态 ① - 虚函数调用链路深入探索 C++ 多态 ② - 继承关系深入探索 C++ 多态 ③ - 虚析构。原创 2023-10-31 14:39:31 · 274 阅读 · 0 评论 -
深入探索 C++ 多态 ② - 继承关系
封装,继承,多态是 C++ 的三大特性,其中多态与继承有密切关系。C++ 语言支持三种继承关系:单一继承,多重继承,虚拟继承:图片来源:《多型与虚拟》原创 2023-10-31 14:34:09 · 181 阅读 · 0 评论 -
深入探索 C++ 多态 ① - 虚函数调用链路
最近翻阅侯捷先生的两本书:(翻译)《深度探索 C++ 对象模型》 和 《C++ 虚拟与多态》,获益良多。虚函数虚函数表虚函数指针、以及对象的内存布局。深入探索 C++ 多态 ① - 虚函数调用链路深入探索 C++ 多态 ② - 继承关系深入探索 C++ 多态 ③ - 虚析构多态是 C++ 中的一个重要概念,它允许在派生类中重写基类中的函数,并以不同的方式处理相同的数据类型;多态的实现依赖于虚函数和动态绑定。虚函数是一种特殊的成员函数,它允许在派生类中重写基类中的函数。原创 2023-10-31 14:20:11 · 296 阅读 · 0 评论 -
剖析 stl + glibc “内存泄漏” 原因
最近项目增加了一个模块,在 Centos 系统压测,进程一直不释放内存。因为新增代码量不多,经过排查,发现 stl + glibc 这个经典组合竟然有问题,见鬼了!通过调试(Centos 调试 glibc 视频)和查阅 glibc 源码,好不容易才搞明白它 “泄漏” 的原因。问题在于:ptmalloc2 内存池的 fast bins 快速缓存和 top chunk 内存返还系统的特点导致。???? 文章来源:剖析 stl + glibc “内存泄漏” 原因1. 现象上测试源码看看:/*原创 2021-08-14 07:21:14 · 1464 阅读 · 1 评论 -
strncpy 安全吗?
测试一下看看,Linux 环境下,这三个函数(strcpy, strncpy, snprintf)哪个比较安全。????文章来源:wenfh2020.com1. 测试代码数据拷贝,当目标内存很小,源数据很大时,从测试结果看:snprintf 结果正常,达到预期。strcpy 拷贝的数据打印出来有点问题,不知道是否正常。strncpy 崩溃了。// test.c#include <stdio.h>#include <string.h>int main(i原创 2020-05-18 18:51:02 · 1090 阅读 · 0 评论 -
printf 从现象到本质
讲真,要深入理解 printf,只能自己看源码。666…从现象到本质前些时间,朋友问了一个问题:printf 的 %s 格式输出,如果参数是其它类型的数据强制转换为 char* 的,结果会怎么样?我想最好的方法莫过于马上动手测试一下,看看结果。如果再问:printf 是线程安全的吗?… 问题很多,这些都只是问题的表象,要从现象看本质。Linux 是开源的,何不看源码“深入理解”程序本质?...原创 2020-03-01 10:14:59 · 255 阅读 · 0 评论