
C++ Qt 设计模式
个人对C++ Qt 设计模式一书的摘录以及思考
张三和李四的家
来不及解释了,快上车。
展开
-
继承与多态
简单派生继承是组织类的一种特殊方式,所有面向对象的语言都支持这种方式,它使得类能够以多种不同的方式共享代码,并且可以揭示类之间的自然关系。它也可以使设计良好的类更具有可复用性。 为了使用继承,需要将一组相关类的共同性质放置到一个基类中,然后由它派生出其他更专门化的类。每一个派生类都继承于基类的所有成员,当然也可以根据需要重写或扩展基类中的每一个函数。从一个共同的基类继承各种成员大大简化了派生类,利原创 2016-11-26 17:05:51 · 357 阅读 · 0 评论 -
类与对象
struct简介在C语言中,关键字struct是程序员可以定义一块结构化的内存,用于存储具有各种各样数据类型的一个数据集。struct Fraction { int number,denom; char description[256];};struct中的每一个小型内存块(number, denom, Description)都可以通过名称访问。这些小型的内存块被称为数据成员,有原创 2016-11-28 20:38:05 · 483 阅读 · 0 评论 -
泛型设计中的模板
所谓泛型(generic),是指那些能够像操作基本类型一样轻松操作对象的类和函数。Qt容器类是范型类,也是基于模板的范型类。范型与模板C++支持四种不同的类型:基本类型:int,char,float,double等指针类和结构的实例数组因为这四种不同类型之间不存在公共基类型,所以如果不使用模板,要编写能够对多种类型进行操作的范型函数和类将会非常可能。例如:int max(int x,int原创 2016-12-07 22:09:04 · 469 阅读 · 0 评论 -
Qt 元对象模式
本章将引入反射的基本思想。所谓反射,就是指对象成员的自我检查。使用反射编程(reflection programming),就可以编写出通用的操作,可对有各种不同结构的类进行操作。使用通用的值存储器QVariant,就可以按照一种统一的方式来对基本类型和其它的普通类型进行操作。原创 2016-12-10 15:34:30 · 1104 阅读 · 0 评论 -
动态属性和元类型的声明和注册
动态属性前面我们知道使用Q_PROPERTY宏可以为类创建变量,但是那只是静态变量。在QObject中加载和存储一些属性也是可能的,即添加动态属性。 到现在位置,我们已经对用Q_PROPERTY宏定义的那些属性进行了专门处理。这些属性对该类的QMetaObject是可知,且有对应的QMetaProperty与之对应。同一个类的所有对象会共享同一个metaObject,因而会有相同的元属性组。另一方原创 2016-12-12 21:52:59 · 911 阅读 · 0 评论 -
库与设计模式
库是一组代码模块,它按照可复用的方式组织而成。代码库中保存的是有用、可复用的、编译后的代码,这样,程序员不需要处理代码库的任何源代码都能够利用它的功能。 当复用来自库中的任何模块时,其工作由链接器在链接编译阶段完成,即在编译之后的程序代码和标准库中的库二进制文件进行链接,在程序中调用库函数时将直接跳到库中找到对应的代码并执行。 库是一个文件,它包含了一个或者多个编译后的文件(称为目标文件),并对原创 2017-02-07 17:35:23 · 532 阅读 · 0 评论 -
QObject 和组合模式
QObjectQObject 是 Qt 库中许多重要类的基类,如QEvent,QApplication 和 QWidget等。我们会将任何从 QObject 类派生出的对象看做是一个 QObject 对象。它可以使用信号和槽与其他 QObject 通信。每个 QObject 都可以有(至多)一个父 QObject ,和任何数量的子 QObject 。每个 QObject 都有一条 QObjectLi原创 2017-02-08 17:06:03 · 491 阅读 · 0 评论 -
QApplication 和事件循环
QApplication 和事件循环观察者模式 在编写事件驱动的程序中,GUI 视图需要对数据模型对象的的状态变化做出响应,以便它们可以显示最先的消息。当任何数据模型对象发生状态改变时,就需要一种间接的方式来提醒观察者。观察者就是一些正在监听(并响应)状态变化的对象。使用这种消息传递机制的设计模式就称为观察者模式。 1. 允许实体观察者类与实体类之间解耦 2. 支持广播风格,一对多的通信 3原创 2017-02-09 16:40:49 · 2350 阅读 · 1 评论