c++客户端项目中需要使用db来保存本地的一些用户信息,sqlite是个轻量级的db,速度也ok,于是选择sqlite来存储本地信息首先在官网http://www.sqlit...
c++客户端项目中需要使用db来保存本地的一些用户信息,sqlite是个轻量级的db,速度也ok,于是选择sqlite来存储本地信息首先在官网http://www.sqlit...
中介者模式是用一个中介类来封装一系列的对象交互,对象间无需相互引用,降低了耦合性。中介类可以根据需要改变他们之间的交互。中介者模式可以使用租房案例来描述,房东不需要单独找房客...
策略模式是将一些操作封装起来,使得他们不受具体使用他们的对象的影响,简单的理解起来可以是封装了一些算法,类似于stl里面的查找等算法;这些算法功能一样,对外接口一样以下是个简...
装饰器模式是给对象动态的增加某些特性,比如咖啡店买咖啡,可以加坚果,加奶,加糖。设计一个咖啡类,如果每次新增一个选项都要修改这个类,就会破坏类的开放-封闭原则(对扩展开放,对...
适配器模式是将一个类的接口转换成我们想要的接口,如类A和类B分别有接口virtual void getinfoA(), virtual void getinfoB(), 如果...
在c++程序中,如何设计一个类才能更好的体现面向对象的特性呢?可以参考下面的六大原则:1.单一职责:一个类只有一个职责2.里氏替换原则:继承必须确保基类的特性在派生类中仍然成...
C++程序开发有个绕不过的坎,那就是内存泄露。内存泄露是指程序未能释放已经不再使用的内存,从而造成内存的浪费,严重的会造成其他程序的失败(消耗掉太多内存,其他程序申请失败等)...
之前往顺序容器中添加元素,基本使用的都是push_back,使用push_back其实是先创建元素,在将元素拷贝到容器中,c11后,push_back可以选择的是创建完元素后...
vector是我们平时经常使用的顺序容器,我们在代码中可以定义一个简单的int类型的vector局部变量 那么当我们往这个vec里面添加元素,一直到超过他的容量的时候,会发生...
inline:内联函数,内联函数会在调用的地方直接展开,不会发生频繁调用函数对栈内存重复开辟带来的消耗那么是否被inline修饰的都是内联函数呢?答案是否定的。一般inlin...
简单的看下cefsimple的实现 首先看下工程的目录结构 入口函数winmain在simple_handler_win.cc中,核心的逻辑代码如下 可以看出基本是初始化--...
后续会在接下来的一段时间内简单介绍下cef,cef的下载链接地址是https://cef-builds.spotifycdn.com/index.html#windows32...
工厂模式简单的分为三种:简单工厂模式,工厂方法模式和抽象工厂模式。1.简单工厂模式: 简单工厂模式每次新增一种产品就需要修改工厂类,所以需要改进2.工厂方法模式 工厂方法是将...
c11中使用noexcept来说明某个函数是否会抛出异常,如下 编译器是不会在编译阶段检查noexcept的,所以可以申明不抛出异常,但是在函数体内抛出异常也是可以编译通过的...
观察者模式是一对多的一种模式,当有状态发生变化的时候,所有监听这个事件的对象都会得到通知并做相应的更新。此模式特别适合事件的监听,对该事件感兴趣的可以注册监听,当不需要的适合...
stl中查找元素,很多情况下都会用到find和find_if,那么两者的用法是什么?有什么区别呢?1.findfind的用法是 find的前两个变量是一段迭代器的范围,最后一...
单例模式是指在整个生命周期里,一个类只能实例化一次,该类是唯一的单例模式可以分为懒汉模式和饿汉模式,懒汉模式是指:系统运行时,实例不存在,只有在需要的时候才会去创建饿汉模式是...
shared_ptr使用的时候需要注意防止裸指针重复赋值给不同的shared_ptr,会造成对象的重复析构,如下程序会发生崩溃 为了解决该问题,可以将p1赋值给p2,但是很多...
用mutable关键字修饰的变量,将会处于可变状态,可以被修改。 const函数中 此时用mutable修饰test_number_即可解决此问题(此处不讨论为何如此写,仅作...