创建型模式
单例模式:一个项目中,全局范围内,某个类的实例有且仅有一个,通过这个单例向其他模块提供数据的全局访问。
// 嵌入知识点:使用C++ 11新特性delete删除构造函数、拷贝函数、移动操作符
class A
{
public:
A() = delete;
A(const A & t) = delete;
A& operator=(const A & t) = delete; // 删除赋值操作符
}
// 单例模式例子:使用C++ 11新特性default,修改构造函数和拷贝函数的访问权限
class A
{
public:
static A* getInstance()
{
return m_instance;
}
protected:
A() = default;
A(const A & t) = default;
static A* m_instance; // 静态变量不能在类的内部初始化,初始化需要到外部
}
A* A::m_instance = new A; // 全局初始化时在A作用域下可以访问到A的m_instance和A()任务队列:将一个一个的任务作为函数,装入队列这样的容器中,根据其先进先出的特性,使程序可以按照某种次序依次执行函数。典型例子如QT的QApplication::exec()事件循环。