摘要:
C/C++编译的程序所占用内存区域一般分为以下5个部分: 栈区(stack):由编译器自动分配和释放,用来存放函数的参数、局部变量等。其操作方式类似于数据结构中的栈。 堆区(heap):一般由程序员分配和释放(通过malloc/free、new/delete),若程序员没有释放,则程序结束时由操作系 阅读全文
摘要:
1、下载starUML 2、打开starUML,选择default approach 3、添加 Profile,把C++添加进去 4、在右侧的工程上点右键—【C++】—-【Reverse Engineer】,然后会弹出选择源码对话框,点击对话框左侧的目录,在对话框右侧会列出该目录下的C++ Sour 阅读全文
摘要:
不管是普通函数、静态函数、全局函数..每个线程都会在自己的线程栈区复制一份这个函数,所有可以随意使用,线程安全。 但是需要注意的是,如果这些函数内部对全局、静态变量进行了访问或修改,则不是线程安全的,需要线程加锁互斥。 阅读全文
摘要:
1、常用控件的使用【除了常见的还有QTableWidget、QTreeWidget...】2、信号与槽【需要知道connect函数的最后一个参数Qt::ConnectionType取不同枚举时的含义】3、多线程【QThread子类和QObject::moveToThread,后者更需要掌握】4、常用 阅读全文
摘要:
NULL就是0 nullptr是空指针【c++11】 阅读全文
摘要:
sql命令: 用于清空某表的数据 且让自增的id重新从0开始 truncate table 阅读全文
摘要:
一、线程互斥 如果多个线程需要访问且可能修改同一个变量,那么需要加锁,保证同一时刻只有一个线程可以访问,这个动作即最小“原子操作” 方式1: 使用c++提供的类mutex,lock,unlock即可保证线程同步 #include <mutex>mutex mx; int haha(){ mx.loc 阅读全文
摘要:
如果我们new出来的指针是一个基本类型,没什么关系,内存还是会被释放的,但是如果是一个类对象指针,在处理过程中转成了void*,那就有问题了,析构函数将不会被调用。 故new的指针类型要和delete的指针类型要保持一致。 如下所示: object* p=new object[10]; void* 阅读全文
摘要:
1、简单的 2、独占式,拷贝时把原来的回收 阅读全文
摘要:
转自:https://www.cnblogs.com/1Kasshole/archive/2018/07/28/9382828.html 阅读全文