
C++
文章平均质量分 55
天天进步2015
软件开发老兵,任职于Acer和Hp,熟悉多种编程语言和框架,现任高级软件工程师。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
通过工厂模式和依赖注入,动态生成C++系统组件
在现代C++软件开发中,设计模式的应用对于构建灵活、可维护和可扩展的系统至关重要。本文将深入探讨如何结合工厂模式(Factory Pattern)和依赖注入(Dependency Injection)原则,实现C++系统组件的动态生成与组装。这种方法不仅能够提高代码的模块化程度,还能显著增强系统的灵活性和可测试性。原创 2025-06-04 11:55:21 · 638 阅读 · 0 评论 -
C++多进程日志管理最佳实践
在复杂的C++应用系统中,特别是涉及多进程架构时,日志管理是一个至关重要但常被忽视的环节。一个设计良好的日志系统不仅能帮助开发者快速定位问题,还能为系统运行状态提供可视化的监控。本文将详细探讨C++多进程环境下的日志管理策略和最佳实践。原创 2025-05-29 17:29:56 · 889 阅读 · 0 评论 -
Linux环境下多进程Socket通信实现
在网络编程中,服务器与多个客户端之间的通信是一个常见的需求。本文将介绍如何在Linux环境下实现一个服务器程序,该程序能够启动多个客户端进程,并通过Socket与这些客户端进行通信。原创 2025-05-29 16:56:31 · 1281 阅读 · 0 评论 -
C++ ODB框架详解:现代C++对象关系映射解决方案
ODB框架摘要 ODB是专为C++设计的对象关系映射(ORM)框架,由CodeSynthesis开发。主要特性包括类型安全、高性能、多数据库支持(MySQL/PostgreSQL/SQLite等)、自动代码生成和完整的事务支持。安装需要C++11编译器、数据库客户端库和CMake。持久化类通过pragma指令标记,包含自动生成的ID字段。数据库操作通过事务进行,支持基本CRUD功能。ODB通过抽象数据库操作为C++对象操作,提供类型安全的查询DSL,帮助开发者提高开发效率,同时保持接近原生SQL的性能。原创 2025-05-27 08:55:08 · 1110 阅读 · 0 评论 -
使用VS Code通过SSH编译Linux上的C++程序
Visual Studio Code (VS Code) 提供了强大的远程开发功能,通过SSH扩展,开发者可以直接在本地VS Code界面中编辑、编译和调试远程Linux服务器上的C++代码。本文将详细介绍如何配置和使用VS Code的SSH远程开发功能,实现无缝的跨平台C++开发体验。原创 2025-05-15 08:59:08 · 1259 阅读 · 0 评论 -
C++使用WebView2控件,通过IPC通信与Javascript交互
在现代桌面应用程序开发中,Web技术与原生应用的融合变得越来越普遍。Microsoft的WebView2控件为C++开发者提供了一个强大的工具,使他们能够在桌面应用中嵌入基于Chromium的Web浏览器引擎。本文将详细介绍如何在C++应用程序中使用WebView2控件,并通过IPC(进程间通信)机制实现C++与JavaScript之间的双向交互。原创 2025-04-08 08:50:48 · 1360 阅读 · 0 评论 -
C++中的无锁编程
无锁编程作为一种高级并发编程技术,能够在高并发场景下提供显著的性能优势。C++11及后续标准通过提供原子操作和内存序模型,为无锁编程提供了坚实的基础。然而,无锁编程也面临着诸多挑战,包括复杂的内存管理、难以验证的正确性以及潜在的ABA问题。随着硬件和编程语言的发展,我们可以期待更多的工具和库来简化无锁编程。在实际应用中,应当根据具体场景选择合适的并发策略,无锁编程并非适用于所有情况。对于并发度不高或对性能要求不严格的场景,传统的基于锁的同步机制可能是更简单、更可靠的选择。原创 2025-03-04 08:46:30 · 1085 阅读 · 0 评论 -
深入解析一下c++11中的右值引用和STL中的std::move
C++11引入了右值引用(Rvalue references)作为一项重要的语言特性,它在C++语言中引入了新的语义,为移动语义和完美转发等高级编程技术提供了基础。理解右值引用的概念对于有效地使用现代C++非常重要。&&移动语义: 右值引用最重要的用途之一是实现移动语义。传统的拷贝构造函数(Copy Constructor)会创建一个新对象并拷贝另一个对象的内容,这在处理大型数据结构时可能会很昂贵。右值引用允许我们将资源从一个对象"窃取"(steal),而不是拷贝,以提高性能。原创 2023-11-11 13:56:29 · 147 阅读 · 0 评论 -
面试中常问到的C++11的题目和答案
C++11引入了许多新的语言特性和标准库更新,以下是一些常见的C++11面试问题和答案原创 2023-10-22 08:26:56 · 1006 阅读 · 0 评论 -
面试中的常问的C++ STL 概念和函数
C++ Standard Template Library(STL)是C++编程中的一个强大工具集,它提供了许多数据结构和算法,以简化常见任务并提高代码的可重用性。在C++面试中,面试官通常会问关于STL的问题,以评估您的C++编程能力和对基本数据结构以及算法的理解。本文将讨论STL的一些常见概念和函数,以帮助您准备面试。原创 2023-10-22 05:45:18 · 473 阅读 · 1 评论 -
C++中的智能指针:更安全、更便利的内存管理
智能指针是C++的一个重要特性,它们是C++标准库提供的类,用于管理动态分配的内存。智能指针的主要目的是在内存释放方面提供自动化支持,从而减轻程序员的负担。:允许多个指针共享同一个对象,当最后一个shared_ptr离开作用域时,对象的内存将自动释放。:独占拥有对象的所有权,不能被复制或拷贝,确保只有一个指针可以访问对象。当unique_ptr离开作用域时,对象的内存也会自动释放。此外,C++17还引入了,用于解决shared_ptr的循环引用问题,它允许创建弱引用,不会增加引用计数。原创 2023-10-22 05:34:18 · 493 阅读 · 0 评论 -
c++父类与子类的转换(QT环境下)
c++父类与子类的转换(QT环境下)转载 2022-09-16 15:50:51 · 2636 阅读 · 0 评论 -
C/C++使用心得:enum与int的相互转换
C/C++使用心得:enum与int的相互转换转载 2022-08-16 15:43:25 · 777 阅读 · 0 评论 -
使用Qt开发iOS应用有何优劣?
作者:JasonWong链接:https://www.zhihu.com/question/25078050/answer/104635143来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 目前我已经有13个由Qt开发的App上架了iOS App Store,我感觉我还是比较有资格来评价这件事的。首先我注意到这已经是一个2年前的问题了,我差不多也是2年前开始用Qt开发iOS,那时候应该也是Qt刚支持iOS开发。...转载 2022-07-08 13:14:42 · 3938 阅读 · 0 评论 -
Qt源码分析--QObject(3)
介绍了QObject的connect函数(形式2)原创 2022-07-01 13:12:41 · 265 阅读 · 0 评论 -
Qt源码分析--QObject(2)
介绍了QObject的connect函数(形式1)原创 2022-06-23 16:26:04 · 261 阅读 · 0 评论 -
Qt源码分析--QObject(1)
解析了QObject类的构造函数和析构函数,还有deleteLater.原创 2022-05-16 16:08:49 · 783 阅读 · 0 评论 -
Qt的QObject(笔记)
QObject 类是所有 Qt 对象的基类。QObject 是 Qt 对象模型的核心。该模型的核心特征是一种非常强大的无缝对象通信机制,称为信号和槽。您可以使用 connect() 将信号连接到插槽,并使用 disconnect() 破坏连接。为避免永无止境的通知循环,您可以使用 blockSignals() 临时阻止信号。QObjects 通过对象树组织。当您以另一个对象作为父对象创建 QObject 时,该对象将自动将自身添加到父对象的 children() 列表中。父级获得对象的所有权;即,它原创 2022-04-19 17:16:11 · 1342 阅读 · 0 评论 -
Qt源码分析--QThread(5)
解析了QThread的setPriority、setStackSize、setTerminationEnabled、msleep、sleep、usleep、wait等函数。原创 2022-04-13 16:37:00 · 1988 阅读 · 0 评论 -
Qt源码分析--QThread(4)
解析了QThead的loopLevel、priority、requestInterruption、run、setEventDispatcher等函数。原创 2022-04-11 17:33:14 · 568 阅读 · 0 评论 -
Qt源码分析--QThread(3)
解析了QThread的exit、idealThreadCount、isFinished、isInterruptionRequested、isRunning等函数。原创 2022-04-08 17:18:57 · 537 阅读 · 0 评论 -
Qt源码分析--QThread(2)
解析了QThread的currentThread、currentThreadId、event、exec等函数。原创 2022-04-07 17:28:36 · 530 阅读 · 0 评论 -
Qt源码分析--QThread(1)
解析QThread的构造函数、析构函数、quit、start、terminate等函数。原创 2022-04-06 17:34:46 · 804 阅读 · 0 评论 -
Qt的QThread(笔记)
QThread 类提供了一种独立于平台的方式来管理线程。QThread 对象管理程序中的一个线程。 QThreads 在 run() 中开始执行。默认情况下,run() 通过调用 exec() 启动事件循环,并在线程内运行 Qt 事件循环。可以通过使用 QObject::moveToThread() 将工作对象移动到线程来使用。然后,slot内的代码将在单独的线程中执行。但是,你可以自由地将 slot连接到来自任何对象、任何线程中的任何信号。通过队列连接的机制,跨不同线程连接信号和插槽是安全的。原创 2022-03-30 17:19:56 · 1221 阅读 · 0 评论 -
Qt源码分析--QWidget(10)--Context menu and Interactive help
解析了QWidget的contextMenuEvent(),actions(),setToolTip(), setWhatsThis()等函数。原创 2022-03-29 17:23:26 · 494 阅读 · 0 评论 -
Qt源码分析--QWidget(9)--System functions
解析了QWidget的parentWidget(), window(), setParent(), winId(), find(), metric()等函数。原创 2022-03-24 17:27:12 · 1139 阅读 · 0 评论 -
Qt源码分析--QWidget(8)--Mouse and keyboard grabbing
解析了QWidget的grabMouse(), releaseMouse(), grabKeyboard(), releaseKeyboard(), mouseGrabber(), keyboardGrabber().原创 2022-03-22 17:10:21 · 854 阅读 · 0 评论 -
Qt源码分析--QWidget(7)--Keyboard focus functions
解析QWidget的 setFocus(), clearFocus(), setTabOrder(), setFocusProxy(), focusNextChild(), focusPreviousChild()。原创 2022-03-18 17:59:34 · 891 阅读 · 0 评论 -
Qt源码分析--QWidget(6)--Look and feel
解析了QWidget的style(), setStyle(), backgroundRole(), setBackgroundRole()等函数。原创 2022-03-16 17:53:09 · 984 阅读 · 0 评论 -
Qt源码分析--QWidget(5)--Mode
解析QWidget的isVisibleTo(), isEnabledTo(), isWindow(), visibleRegion()等函数。原创 2022-03-15 17:24:31 · 1122 阅读 · 0 评论 -
Qt源码分析--QWidget(4)--Geometry
解析了QWidget的move、resize、 sizeHint、updateGeometry、 adjustSize、mapFromGlobal、mapToGlobal、setFixedSize等函数。原创 2022-03-14 17:28:55 · 1904 阅读 · 0 评论 -
Qt源码分析--QWidget(3)--Window contents
解析了QWidget的update(), repaint(), scroll()等函数。原创 2022-03-10 17:52:07 · 675 阅读 · 0 评论 -
Qt源码分析--QWidget(2)--Top-level windows
解析了QWidget的activateWindow()、showMinimized()、showMaximized()、showFullScreen(), showNormal()等函数。原创 2022-03-09 14:15:45 · 1017 阅读 · 0 评论 -
Qt源码分析--QWidget(1)--Window functions
解析了QWidget的show(), hide(), raise(), lower(), close()等函数。原创 2022-03-08 15:40:19 · 946 阅读 · 0 评论 -
Qt的QWidget类(笔记)
QWidget 类是所有用户界面对象的基类。QWidget是用户界面的原子:它从窗口系统接收鼠标、键盘和其他事件,并在屏幕上绘制自己的表示。每个QWidget都是矩形的,它们按 Z 顺序排序。QWidget被其父级和它前面的QWidget裁剪。未嵌入父窗口QWidget的窗口QWidget称为窗口。通常,窗口有一个框架和一个标题栏,尽管也可以使用合适的窗口标志创建没有这种装饰的窗口)。在 Qt 中,QMainWindow 和 QDialog 的各种子类是最常见的窗口类型。每个QWidget的构造原创 2022-03-04 15:11:47 · 8415 阅读 · 0 评论 -
Qt的定时器(笔记)
QObject 是所有 Qt 对象的基类,在 Qt 中提供了基本的定时器支持。使用 QObject::startTimer(),您可以启动一个以毫秒为单位的定时器作为参数。该函数返回一个唯一的整数定时器 ID。定时器现在将定期触发,直到您使用定时器 ID 显式调用 QObject::killTimer()。要使这种机制起作用,应用程序必须在事件循环中运行。你用 QApplication::exec() 开始一个事件循环。当定时器触发时,应用程序发送一个 QTimerEvent,并且控制流离开事件循环,直原创 2022-03-02 14:35:15 · 3085 阅读 · 0 评论 -
Qt的事件系统(笔记)
事件系统 在 Qt 中,事件是派生自抽象 QEvent 类的对象,它们表示在应用程序内发生的事情或作为应用程序需要了解的外部活动的结果。事件可以被 QObject 子类的任何实例接收和处理 如何传递事件 当一个事件发生时,Qt 通过构造适当的 QEvent 子类的实例来创建一个事件对象来表示它,并通过调用其 event() 函数将其传递给 QObject 的特定实例(或其子类之一)。 该函数不处理事件本身;根据传递的事件类型,它为该特定类型的事件调用事件处理程序,并根据事件是被接受还是被原创 2022-03-01 16:31:35 · 464 阅读 · 0 评论 -
Qt的信号和槽机制(笔记)
信号和插槽 信号和槽用于对象之间的通信。 Qt 的元对象系统使信号和槽成为可能。 在 GUI 编程中,当我们更改一个小部件时,我们经常希望通知另一个小部件。更一般地说,我们希望任何类型的对象都能够相互通信。 其他工具包使用回调实现这种通信。 在 Qt 中,我们有一个回调技术的替代方案:我们使用信号和槽。 信号和槽机制是类型安全的:信号的签名必须与接收槽的签名匹配。 基于字符串的 SIGNAL 和 SLOT 语法将在运行时检测类型不...原创 2022-02-28 14:42:03 · 638 阅读 · 0 评论 -
Qt源码分析--QImage(8)
解析了QImage的setDotsPerMeterX, setDotsPerMeterY, fill 函数。原创 2022-02-24 14:50:53 · 529 阅读 · 0 评论 -
Qt源码分析--QImage(7)
解析了QImage的scaledToWidth, scaledToHeight函数。原创 2022-02-23 17:04:43 · 931 阅读 · 0 评论