随笔分类 - Qt/C++
这里记录了我Qt/C++学到的知识,以及在学习过程中的感悟
摘要:函数一种推荐的策略是,遇到错误时尽快退出。一般来说这个叫快速失败策略。 比较懒的人很难一直遵循这个规则,所以不如直接写个宏吧。 #include <iostream> // 尽早退出 #define RET_IF(_CONDITION_, RET_VALUE, ...) \ do { \ if (_
阅读全文
摘要:2024年04月18日更新,发现了更好的方案。 在 conanfile.txt 中添加 [imports] bin, *.dll -> ./bin # Copies all dll files to './bin' lib, *.so* -> ./lib # Copies all so files
阅读全文
摘要:个人记录用,一直以为成员函数内的静态变量不同实例是分别存储的。事实上是所有实例共享。 #include <iostream> class Test { public: void test() { static int i = 0; i++; std::cout << i << std::endl;
阅读全文
摘要:搞懂无锁编程的重要一步是完全理解内存顺序! 本教程由作者和ChatGPT通力合作完成。 都有哪几种? c++的内存模型共有6种 memory_order_relaxed memory_order_consume memory_order_acquire memory_order_release me
阅读全文
摘要:介绍 本文主要记录如何添加kitware软件源并安装最新版本的cmake,并解决遇到的一些问题。 注意,本篇所有操作均在Ubuntun20.4物理机实操,不保证其他版本安装成功。 kitware & cmake ubuntu官方软件源的cmake版本过于古老,导致一些新项目无法编译通过,kitwar
阅读全文
摘要:介绍 这是很久之前的一个项目了,最近刚好有些时间,就来总结一下吧! 推荐初步熟悉项目后阅读本文: https://gitee.com/smalldyy/easy-msg-cpp 从何而来 这要从我从事Qt开发的那些日子说起了,项目说大不大,说小也不小,人倒是一茬又一茬,需求也换了又换,后来的事情大家
阅读全文
摘要:阅读前注意 本文所有代码贴出来的目的是帮助大家理解,并非是要引导大家跟写,许多环境问题文件问题没有详细说明,代码也并不全面,达不到跟做的效果。建议直接阅读全文即可,我在最后会给出详细代码地址,对源代码细节更感兴趣的同学可以下载参考。 性能测试:使用日志 在c++中进行性能测试是令人头疼的问题,我们往
阅读全文
摘要:本文主要记录在Ubuntu系统上安装多个版本c/c编译器,并进行默认版本管理的方法。 笔者在安装Qt时,安装了g7,在开发其他纯c项目时,遇到了需要更高版本g的需求,同时,不想删除原来的g++版本,经过多方查询,现将方法总结如下,希望对各位有用。 更新源 sudo apt update sudo a
阅读全文
摘要:class DbCommand { friend class DbQuery; public: template<typename ...Args> DbCommand(const QString& prepare_sql, Args... args) { //qDebug() << prepare
阅读全文
摘要:QSqlDatabase 使用静态方法addDatabase来创建一个数据库连接。 如果你的程序中只有一个数据库连接,可以使用如下语句创建连接 QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); 如果你的程序要处理多个数据库连接,那么就使用
阅读全文
摘要:Qt项目pro文件相关知识总结和记录 pro文件中使用相对路径需要注意的地方 链接库的方法 LIBS += -L<path> -l<libname> 示例: 链接/usr/lib 中的libabc.so库 LIBS += -L/usr/lib -labc 示例: 链接本项目目录下的/bin下liba
阅读全文
摘要:事务具有以下属性: 1. 原子性:一个事务要被完全性的无二义性的做完或者撤销,在任何一个操作出现错误的情况下,构成事务所有操作所造成的效果都必须被撤销,数据应该被回滚到以前的状态。 2. 一致性:一个事务应该保护所有定义在数据上的不变的属性(例如完整性约束)。在完成了一个成功的事务时,数据应处于一致
阅读全文
摘要:Qt中几种操作xml的方式 流方式 sax方式 dom方式 初学时,我常常采用流方式读取xml,该方式简单直观,容易理解。之后遇到了需要修改xml并重新写回的情况,流方式就显得捉襟见肘了。 sax方式接触不多,从来没有在实际生产中使用过。 dom方式概念复杂,对于个人来说,文档也不是很清晰,导致我一
阅读全文
摘要:设计模式可能是一个高深的问题,目测逼格极高,驾驭起来也肯定是有难度的,为了理解一篇文章中的一些概念,我也第一次鼓起勇气直面了这个问题,虽然是初出茅庐的小菜鸟,但也是有一番收获的,这篇文章粗浅的认识了观察者模式,将会以一个气象站的例子加以描述. <! more 观察者模式 简要的描述 观察者模式,还有
阅读全文
摘要:在我们学习数据结构时,链表的操作大同小异,虽然数据结构使用抽象数据类型描述算法,但是实现方法的本身特点就造成了链表的基本操作和用户自定义数据类型(ElemType)产生了高度的耦合,数据类型和链表的操作这种"绑定",降级了代码的重用性,每次将链表应用到新的场合时,都要修改源代码来保证链表与新的数据类型"绑定",大量的重复操作,难免会出现各种错误.我们希望有一种具有通用型性的链表,将数据类型与链表操作分离开,这就需要所谓的通用链表(姑且这样命名).
阅读全文
摘要:最近查看了关于c++构造函数的博客,为了防止关键知识的遗忘,特此记录一些要点,以便于今后的查阅。 如果不主动书写构造函数,c++或默认提供一般构造函数,拷贝构造函数以及复制运算符的操作。一般的构造函数没有任何参数,默认提供的该种构造函数不执行任何操作默认提供的拷贝构造函数简单的将成员变量赋值默认提供
阅读全文
摘要:========================内联函数======================频繁调用小函数使得函数调用的开销占比重极大,不适用函数而直接在程序中完成同样功能的代码又会降低程序的可读性 内联函数解决了这个矛盾1.内联函数的声明必须在调用之前!例如#includeusing na...
阅读全文
摘要:=================默认参数==================在函数声明时表明默认值,在函数定义时正常定义voidfunction(inta=2)//函数声明voidfunction(inta)//函数定义{//code....}具体规则1.默认参数在声明中给出或者在定义中给出(默认...
阅读全文
摘要:效果演示可以生成一个输出框首先要创建输出框,设置输出框风格,可以设置的元素包括:左上角符号,右上角符号,左下角符号,右下角符号,以及上下左右边界线符号,理论上,只要你电脑能显示的符号,都可以支持该套代码在:宽字符下工作再次你需要加载字符串,此函数可以多次调用,可以向输出框中添加内容之后show输出框...
阅读全文
摘要:(1) .dll .obj .lib使用在windows平台下。 .dll:动态链接库,作为共享函数库的可执行文件。 .obj:目标文件,相当于源代码对应的二进制文件,未经重定位。 .lib:可理解为多个obj的集合,本质与.obj相同。(2) .so .o .a使用在linux平...
阅读全文