C++
文章平均质量分 93
一颗哈士奇
这个作者很懒,什么都没留下…
展开
-
设计模式之组件协作模式
设计模式学习 设计模式的作用是 在稳定和变化之间寻找一个间隔层,将稳定部分和变化分割开,提高软件复用性。 一、软件设计思想 1.理解松耦合设计思想 2.掌握面向对象设计原则 3.掌握重构技法改善设计 4.掌握GOF 核心设计模式 二、设计原则 1.依赖倒置原则(DIP) 稳定(抽象) 依赖 稳定; 不稳定 (实现细节,易变化)依赖 稳定。 2.开放封闭原则(OCP) 对扩展开放,对更改封闭;就是增加一个需求时,只需要增加代码就好,而不是去修改以往代码。具有扩展性 3、单一职责原则 一个类只有一个责任 4.L原创 2021-03-17 23:07:51 · 242 阅读 · 0 评论 -
C++11 std::move和std::forward
下文先从C++11引入的几个规则,如引用折叠、右值引用的特殊类型推断规则、static_cast的扩展功能说起,然后通过例子解析std::move和std::forward的推导解析过程,说明std::move和std::forward本质就是一个转换函数,std::move执行到右值的无条件转换,std::forward执行到右值的有条件转换,在参数都是右值时,二者就是等价的。其实std::move和std::forward就是在C++11基本规则之上封装的语法糖。 1 引入的新规则 规则1(引用折叠规则原创 2020-11-11 16:16:24 · 316 阅读 · 1 评论 -
移动语义笔记
左值与右值区别 右值引用、对象移动 在c++中,一个值要么是右值,要么是左值,左值是指表达式结束后依然存在的持久化对象,右值是指表达式结束时就不再存在的临时对象。所有的具名变量或者对象都是左值,而右值不具名。 C引入右值引用之后,可以通过右值引用,充分使用临时变量减少不必要的拷贝,提高效率。 int&& i = 123; int&& j = std::move(i); int&& k = i;//编译不过,这里i是一个左值,右值引用只能引用右值 右值引用不能绑原创 2020-11-10 21:37:16 · 148 阅读 · 0 评论