qt 项目划分的随笔

TJ两篇草稿

分文件夹
要想编译过,在pro文件中直接引入分后的文件夹路径即可,这样省去了在include中写的相对路径
这个方法也可以引用其他项目,但一定要注意,类之间不能有【重名】,否则会出现未定义错误。

独立成为动态库项目
建立独立项目、类型为c++ lib,但是该引入gui、widget等就引入进来(不用担心变为动态库后界面部分就失效这中问题,都能正常运行,要是源码也引入了项目,照样可以调试);在pro文件中的引用动态库中加入这个编译的动态库名
分为动态库,为的是方便缩短编译时间、局限改动范围,小改动就不会再影响很大导致整个项目又得重新编译了,因为影响仅仅限制在了这个分出来的小项目里

项目中,类的创建套路
界面类引用管理类,界面类之间严禁相互引用,否则会出现编译时间大大加长的情况
界面类:模型、代理/委托这样的模式
其中一种简陋的单例模式可以使用全局指针,仅在main中创建一个对象,所有子对象都可以在这个全局指针下找到。
管理类:数据库的访问、网络连接、线程管理

信号、插销(槽)
为降低耦合,可以想象成,自己做成一个个零件,零件内部靠直接调用函数进行运转,零件之间靠电线连接起来,这个电线就是用第一个零件的的信号和第二个零件的槽进行接线。

开发中非常管用的东西:
日志文件
枚举类型
globle的宏定义
调试堆栈

——以上草稿于2021.4.26 21:44:00


类实际上是一个cpp和一个h组成的。
类 本身就是对对象的抽象。

最近工作让我把使用两种不同中间件的数据库的操作的两版软件,其中的数据库操作给提取出一个类并用宏定义实现两个版本的软件的数据库操作的合并。

于是我
把重复率高的操作给抽出来,
把本来是主窗口的数据库对象指针变成了我的数据库的类的static型指针
根据功能就搞了两个成员函数:“查询”和“增删改”
又为了防止程序异常的问题,我定义了一个“错误提示字符串”的私有变量,还定义了“获取错误提示”的私有函数,其中用到了中间件的“获取数据库指针状态”、“得到数据库返回的结果”、“获取错误信息”,这样就有效避免了闪退问题方便调试。(try catch不好用,把变量作用域局限在了花括号里了)
后来又遇到了需要将文件存储位二进制串的问题,我想着把它再单写成一个专门插入文件的函数,参数是文件指针和要插入的列名、表名。并且还需要和插入数据的写在一个事务里保持同步。

https://www.cnblogs.com/yyxt/p/4802688.html
https://www.cnblogs.com/xiaogua918/p/4181594.html

后来参考《C++ GUI QT4编程》,发现qt框架的习惯是非常令人舒适的,于是下面我就把其中部分精华摘录出来。
。。。。。。。。。。。。

API 演进的正确方式(api的设计也是门功夫)
https://linux.cn/article-10900-1.html

面向对象内容,来自https://www.runoob.com/php/php-oop.html
类 − 定义了一件事物的抽象特点。类的定义包含了数据的形式以及对数据的操作。
对象 − 是类的实例。
成员变量 − 定义在类内部的变量。该变量的值对外是不可见的,但是可以通过成员函数访问,在类被实例化为对象后,该变量即可称为对象的属性。
成员函数 − 定义在类的内部,可用于访问对象的数据。
继承 − 继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。
父类 − 一个类被其他类继承,可将该类称为父类,或基类,或超类。
子类 − 一个类继承其他类称为子类,也可称为派生类。
多态 − 多态性是指相同的函数或方法可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。
重载 − 简单说,就是函数或者方法有同样的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。
抽象性 − 抽象性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。
封装 − 封装是指将现实世界中存在的某个客体的属性与行为绑定在一起,并放置在一个逻辑单元内。
构造函数 − 主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。
析构函数 − 析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做"清理善后" 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。

.cpp和.h的拆分
https://blog.csdn.net/duoluka/article/details/88691348

——以上草稿于2020-02-28 23:14:57 《C++ 我对类的思考(如何较好的拆出一个类)(面向对象)》

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超自然祈祷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值