![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++学习
konghhhhh
记录自己的学习过程
展开
-
内存访问常见错误
valgrind内存检查原理建立两个全局表:Valid-Value表:进程的整个地址空间的每一个字节(Byte), 都有与之对应的8bit, 对于CPU中的每一个寄存器, 也都有一个与之对应的bit向量. 这些bit负责记录该字节或者寄存器是否具有有效的、已初始化的值.Valid-Address表:整个地址空间的每一个字节, 还有阈值对应的1bit, 记录改地址能够被读写.检测原理当读写内存中某个字节时, 首先检查Address表, 如果是无效位置, 则错误valgrind中维护一个虚原创 2022-03-13 17:04:58 · 569 阅读 · 0 评论 -
单例模式——饿汉/懒汉(c++)
单例模式单例模式 指一个类在整个程序中只有一个实例。特别是某些工具类,在所有地方使用该类都只需要一个实例单例模式分为两种类型饿汉在类定义的时候实例化NOTE:c++里面,静态变量必须要初始化懒汉在第一次用到类实例的时候实例化很多地方有类似的思想:写时拷贝、晚绑定可以通过加锁的方式实现线程安全可以通过c++11中的特性实现线程安全局部静态变量在函数第一次调用的时候初始化代码饿汉/* * 饿汉模式(线程安全) * 在类定义的时候就原创 2021-12-02 10:18:25 · 264 阅读 · 0 评论 -
静态联编和动态联编
静态联编,调用函数只与指针的类型有关,与指针指向子类无关,指针是父类的指针,就会调用父类的函数。动态联编,前提是父类的函数是虚函数,调用的函数,是指针指向的对象所对应的函数。...原创 2020-11-12 22:54:52 · 140 阅读 · 0 评论 -
c++三大特性
所谓封装就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏.封装是面向对象的特征之一,是对象和类概念的主要特性. 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了...转载 2020-01-09 22:58:32 · 136 阅读 · 0 评论 -
tinyhttp整理(一)
之前在git上学了一个tinyhttp的小项目,但今年考研书太多了,把之前笔记搞丢了,最近回顾一遍顺便整理出博客。 另外涉及到的东西比较多,http基础、网络编程、linux系统函数、cgi、多线程、管道通讯。还有就是因为环境不一样要运行起来要改一些地方,参考了一些博客,如点击这里点击这里。 自己改完加注释的代码也上传到资源上了点击这里----------------看...原创 2019-12-29 16:59:23 · 1889 阅读 · 2 评论