摘要:
1. RAII 概述 RAII (Resource Acquisition Is Initialization) 是 C++ 中最重要的资源管理机制之一,它将资源的生命周期与对象的生命周期绑定,确保资源的安全使用和自动释放。 历史背景: RAII 概念由 Bjarne Stroustrup 在 19 阅读全文
摘要:
在 C++ 中,智能指针是现代内存管理的重要工具,尤其是在复杂的多线程环境中,能显著减少内存泄漏和悬空指针等问题。std::shared_ptr 是 C++11 引入的一种共享智能指针,通过引用计数机制管理对象的生命周期。本文将详细介绍 std::shared_ptr 的基本用法、循环引用问题、线程 阅读全文
摘要:
这里写了一个基于Qt5的控制台的小代码: #include <QCoreApplication> #include <QDebug> int main(int argc, char** argv) { QCoreApplication a(argc, argv); qDebug() << "Appl 阅读全文
摘要:
在Qt Creator中使用vcpkg,尤其是在Windows的MinGW环境下,集成可能会遇到挑战。本指南探讨了在Qt Creator中使用vcpkg的不同方法,重点关注推荐的vcpkg.json清单文件方法。 1. 使用vcpkg.json清单文件(推荐) vcpkg.json清单文件是现代化的 阅读全文
摘要:
C++高级概念详解 一、智能指针 1. 概述 智能指针是C++中用于自动管理内存的工具,它能够确保在适当的时候自动释放内存,防止内存泄漏。 2. 类型比较 2.1 原始指针 class MyClass { public: MyClass() { std::cout << "Constructor c 阅读全文
摘要:
// File: JsonSerializer // Author: linxmouse@gmail.com // Creation: 2024/09/29 #ifndef JSON_SERIALIZER_H #define JSON_SERIALIZER_H #include <QJsonDocu 阅读全文
摘要:
协变(Covariance) 和 逆变(Contravariance) 是面向对象编程中关于类型系统的一种概念,主要用于处理泛型类型、接口或委托的继承和类型转换问题。它们决定了在继承结构中,泛型参数如何与类型或接口的继承关系保持一致或相反。 1. 协变(Covariance) 协变指的是,当你有一个 阅读全文
摘要:
std::variant 是C++17引入的一个新的标准库类型,它提供了一种类型安全的联合体。这个类可以在同一时间持有几种可能类型中的一个值。本文将详细介绍 std::variant 的概念、用法和实现细节。 1. 基本概念 std::variant 是一个模板类,可以存储几种不同类型中的一个值。它 阅读全文
摘要:
C++11引入了智能指针,它们是管理动态分配内存的强大工具。本文将详细介绍两种最常用的智能指针: std::unique_ptr 和 std::shared_ptr。 std::unique_ptr 概述 std::unique_ptr 是一种独占所有权的智能指针。它确保一个对象只能被一个 uniq 阅读全文
摘要:
在本文中,我们将介绍如何使用Qt实现一个自定义的GraphicsView,主要是作为笔记使用QGraphicsView框架方面的使用手法、套路,对代码就不做过多的解释了,它具有以下功能: 显示图像 可拖动的十字标记(CrossMarkItem) 可调整大小的ROI(Region of Interes 阅读全文
摘要:
有这么一个需求,要在本机的wsl-ubuntu上面安装mysql-server,需要做到与windows下mysql-server一致不区分大小写,有的副本比较容易配置成功,有的比较折腾,所以有了本文的想法,将已经配置好的wsl-ubuntu分发出来,备份到需要的机器上面去 mysql> selec 阅读全文
摘要:
在Ubuntu系统中使用apt安装完成Mysql8.0以后,发现数据库对大小写是敏感的,即只能查询到大小写完全匹配的表名和字段名。这时需要设置 lower_case_table_names=1来解决这个问题。具体属性如下(在 Unix 上lower_case_table_names 的默认值为 0, 阅读全文
摘要:
隐式转换在C++中是一种自动将一种数据类型转换为另一种数据类型的机制。虽然它在简化代码编写和提高代码可读性方面有很多优点,但也存在潜在的缺点,可能引发性能问题和错误。理解隐式转换的工作原理及其优缺点,并结合explicit关键字的使用,对于编写高质量的C++代码非常重要。 优点 简洁代码: 隐式转换 阅读全文
摘要:
在现代软件开发中,HTTP REST客户端请求是与服务器通信的重要方式之一。在Qt5中,我们可以使用QNetworkAccessManager类来执行HTTP请求,并使用QSerializer库来解析JSON数据。本文将详细说明如何使用这些工具,并提供GET、POST、PUT、DELETE等请求的示 阅读全文
摘要:
在 WPF 应用程序中,我们经常需要在 MVVM 模式下处理用户交互,同时传递both事件参数和当前的数据上下文。Microsoft.Xaml.Behaviors 提供了一种优雅的方式来实现这一目标。本笔记将详细介绍如何使用 EventTrigger、InvokeCommandAction 以及自定 阅读全文