- 博客(7)
- 资源 (9)
- 收藏
- 关注
原创 现代C++设计模式之单例模式
双重检验锁定模式简单地说,与上面的方法的区别是:上面的方法中,是先获取锁,再检查空指针,如果指针为空,则创建对象实例;而双重检验锁定模式重,先检查一次空指针,如果指针为空,则获取锁,再检查指针,如果仍为空,则创建对象实例。总之,到这里,我们知道了一件事:C++11 标准库中提供了方法,可以让某件事只做一次(比如初始化一次),不管调用了几次,不管是不是多线程调用的,最终一定只执行一次。配置文件管理器,日志记录器,数据库连接池,线程池,全局缓存,窗口管理器,硬件访问,任务管理器,负载均衡器。
2024-08-16 10:33:33
749
原创 [c++]内联函数(inline)详解
1)宏是预处理指令,在预处理的时候把所有的宏名用宏体来替换;内联函数是函数,在编译阶段把所有调用内联函数的地方把内联函数插入;2)宏没有类型检查,无论对还是错都是直接替换;而内联函数在编译时进行安全检查;3)宏的编写有很多限制,例如只能写一行,不能使用return控制流程等;4)对于C++ 而言,使用宏代码还有另一种缺点:无法操作类的私有数据成员。
2024-03-24 18:16:22
431
原创 adapter适配器模式
//目标接口(新接口)class ITarget{public: virtual void process()=0;};//遗留接口(老接口)class IAdaptee{public: virtual void foo(int data)=0; virtual int bar()=0;};//遗留类型class OldClass: public I...
2019-06-19 16:22:41
212
转载 C++ memory order
导语: C++ 11与JDK 1.9都新增了对memory order的支持,对于memory order这个概念,本文试图阐述清楚与它相关的问题的由来,概念定义以及c++ 11与jdk 1.9对其的支持。Memory Model在分析memory order之前,我们先讲一下为什么要考虑memory order问题,这里需要简单分析一下多线程编程环境中的内存模型。上图所示的是...
2019-05-18 00:00:02
1023
转载 把vim打造成牛逼的C++ IDE
欢迎使用Markdown编辑器写博客对于windows上做C++开发的用户来说,vs为他们做了大量的工作,语法高亮、自动缩进、智能提示等等,当你happy的使用vs时,请记住一点,这是一个收费软件,虽然在我大中华普遍都在使用微软的盗版软件,但作为程序员我们心里应该知道这是不对的行为,然后再去——等等,我们今天讨论的不是这个话题,我们要说的是Linux下的免费软件vim!vim插件安装的教程在互联网上
2016-12-07 00:45:39
1498
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人