- 通用 GitLab 协作与项目治理(账号、分支、MR、CI/CD、合规、模板等);
- 面向 C 语言项目 的目录结构、Makefile 与 GitLab CI 模板(最小与增强版);
- 工作场景向 Git 命令速查(含冲突/回退/恢复的完整示例);
git checkout与git switch/git restore的一一对照与融入脚本。
.gitignore-片段git checkout 用法速查与对照git checkout 融入你的日常脚本转载Bolg:恋恋风辰 视频:BiliBili学习视频
本项目为C++全栈聊天项目实战,包括PC端QT界面编程,asio异步服务器设计,beast网络库搭建http网关,nodejs搭建验证服务,各服务间用grpc通信,server和client用asio通信等,也包括用户信息的录入等。实现跨平台设计,先设计windows的server,之后再考虑移植到windows中。较为全面的展示C++ 在实际项目中的应用,可作为项目实践学习案例,也可写在简历中。
一个概要的结构设计如下图

转载GitHub: qt-learning-guide
推荐另一个博客文章:爱编程的大丙
熟练Qt特性,快速开发含GUI的应用程序。
为什么使用Qt开发应用程序
基本文件构成
Qt程序的实际运行流程
让对象关联起来——信号槽
简化信号槽传参——Lambda表达式
更宽泛的对象联动——事件
Qt 是一个著名的 C++ 应用程序框架。Qt的功能十分强大,即使你没有学过C++的STL库,或者没有接触过XML等也不用担心,因为Qt已经帮你内置好了各种技术,你只需要会调用即可。Qt 是一个跨平台的开发框架,在各个平台上都具有良好的兼容性。 选择Qt无论是从上手难度和后期维护难度来说,都是非常优秀的。
⭕ 即使Qt已经封装好了很多功能,但不可否认的是,学习Qt仍然需要一定的C++基础,以及面向对象编程的思想。还需要对指针的相关知识有非常清晰的理解。
原文转载:恋恋风辰
本文主要介绍线程的基本管控,包括线程的发起,等待,异常条件下如何等待以及后台运行等基础操作。
线程发起顾名思义就是启动一个线程,C++11标准统一了线程操作,可以在定义一个线程变量后,该变量启动线程执行回调逻辑。如下即可发起一个线程
cpp展开代码void thead_work1(std::string str) {
std::cout << "str is " << str << std::endl;
}
//1 通过()初始化并启动一个线程
std::thread t1(thead_work1, hellostr);
当我们启动一个线程后,线程可能没有立即执行,如果在局部作用域启动了一个线程,或者main函数中,很可能子线程没运行就被回收了,回收时会调用线程的析构函数,执行terminate操作。所以为了防止主线程退出或者局部作用域结束导致子线程被析构的情况,我们可以通过join,让主线程等待子线程启动运行,子线程运行结束后主线程再运行。
cpp展开代码std::string hellostr = "hello world!";
//1 通过()初始化并启动一个线程
std::thread t1(thead_work1, hellostr);
//2 主线程等待子线程退出
t1.join();