C++11实现Qt的信号槽机制
摘要:转自:https://www.cnblogs.com/highway-9/p/5559558.html
阅读全文
C++11多线程
摘要:引自:https://blog.csdn.net/baidu_41388533/article/details/110077184 引自:https://blog.csdn.net/qq_38231713/category_10001159.html 引自:https://blog.csdn.net
阅读全文
C++/QT设计模式-观察者模式,C++11改进
摘要:引自:https://blog.csdn.net/SuperYang_/article/details/79041345 引自:https://blog.csdn.net/gx864102252/article/details/80739885?utm_medium=distribute.pc_re
阅读全文
类工厂(C++)
摘要:转自:https://www.cnblogs.com/kevonyang/p/6259922.html 测试: enum CreateType{ FCT_1, FCT_2, FCT_3};DECLARE_WIDGET(FCT_1, Widget);DECLARE_WIDGET(FCT_2, Widg
阅读全文
命令模式(C++)
摘要:一: 意图: 将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化; 对请求排队或记录请求日志,以支持可撤销的操作。 用途: 1、接口回调。Command模式是回调机制的一个面向对象的替代品。 2、在不同时刻指定,排列和执行请求。 3、支持Undo/Redo操作。 4、支持修改日志。
阅读全文
状态模式(C++)
摘要:意图:允许一个对象在其内部状态改变时改变他的行为。 用途: 1. 一个对象的行为取决于他的状态,并且他必须在运行时根据状态改变行为。 2.一个操作中含有庞大的多分支的条件语句。这个状态通常用一个或多个枚举常量表示。通常多个操作包含这一 相同的条件结构 。State模式将每个条件分支放入一个独立的类中
阅读全文
访问者设计模式(C++)
摘要:1.定义:抽象访问者(Visitor)角色:声明了一个或者多个访问操作,形成所有的具体元素角色必须实现的接口。具体访问者(ConcreteVisitor)角色:实现抽象访问者角色所声明的接口,也就是抽象访问者所声明的各个访问操作。抽象节点(Element)角色:声明一个接受操作,接受一个访问者对象作
阅读全文
EventDispatcher(事件分发)
摘要:void Run() { std::cout << "Run!" << std::endl;} /// 测试如下: int main() { EventDispatcher* eventDispatcher = EventDispatcher::Instance(); eventDispatcher
阅读全文
简单工厂的三种形式(C++)
摘要:方式三测试: std::shared_ptr<IInterface> p = CCarFactory::Create<CInterfaceImp2>();
阅读全文
Thread的两个函数detach()和join()
摘要:引自:https://www.jianshu.com/p/b5adb0ece8b9 参考链接:https://www.cnblogs.com/zhanghu52030/p/9166526.html 1.在声明一个std::thread 对象之后,都可以使用detach和join函数来启动被调线程,区
阅读全文
五个基本原则(C++11)
摘要:std::vector<int> a; auto b = a; auto& c = b; auto d = std::move(b); a是左值,因为我们能取到a的地址;b是左值,因为b是有地址并且有类型的。c是b的引用,可以取到地址,因此c也是一个左值move是一个辅助函数,他告诉编译器,想办法把
阅读全文
C++反转字符串的三种方法
摘要:1.定义反转字符串 void changeOrder1(char* data){ if (data == NULL) { return; } auto nLen = strlen(data); char *p1 = data; char* p2 = p1 + (nLen - 1); while (p
阅读全文
C++链表反转
摘要:struct Node { int num; struct Node* next; }; Node* reverseList(Node *pNode) { Node* prev = nullptr; while (pNode) { Node* pNext = pNode->next; pNode->
阅读全文
C++模板工厂示例
摘要:/// 1.定义数据访问接口 class IDataAccessInterface { public: virtual IDataInterface(){} /// 执行数据库 增删改操作 virtual void exeSql(string strSql) = 0; }; /// 2.数据访问接口
阅读全文
C++封装智能指针
摘要:引自:https://blog.csdn.net/man_sion/article/details/77196766 //模板类作为友元时要先有声明template <typename T> class SmartPtr; //辅助类template <typename T> class RefPt
阅读全文
C++设计模式-策略模式(2)
摘要:策略模式:策略模式针对一组算法,将每一个算法封装到具有共同接口的独立的类中从而使得它们可以相互替换。 策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模把行为和环境分开。环境类负责维持和查询行为类, 各种算法在具体的策略类中提供。由于算法和环境独立开来,算法的增减,修改都不会影响到环境和客
阅读全文
C++设计模式-备忘录模式(1)
摘要:备忘录模式:备忘录对象时一个用来存储另外一个对象内部状态的快照对象。 备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捉住并外部化,存储起来从而可以在将来合适的时候把这个对象还原到存储起来的状态。 设计备忘录三大步骤: 1、设计记录的节点(数据),存储记录 2、设计记录的存储vector、l
阅读全文