7.构造函数的白话解释

先写一个通用的类和构造函数:

#define TEMP_FILTER_WINDOW_SIZE 10 // 包含必要的头文件(Qt线程、C++标准库) #include <QThread> #include <QObject> #include <algorithm> // 用于std::fill_n // 定义温度采集线程类,继承自Qt的QThread class TempWorkerThread : public QThread { // Qt的信号槽机制需要这个宏 Q_OBJECT public: // 构造函数声明(和类名相同) explicit TempWorkerThread(QObject *parent = nullptr); private: // 类的成员变量(m_前缀是Qt/工业编程常用命名规范) int m_filterWindowSize; // 滤波窗口大小 bool m_isCollecting; // 是否正在采集温度 bool m_isPaused; // 是否暂停采集 int m_tempBufferIndices[8];// 温度缓冲区索引(8个通道) double m_baseTemp; // 基准温度值 };

上面这个类定义,:什么意思?

这个:的核心含义

在 C++ 的类定义中,类名 : 继承方式 父类名里的:继承语法的标志,作用是声明:当前类(子类 / 派生类)继承了另一个类(父类 / 基类)的属性和方法

对应到class TempWorkerThread : public QThread

  • TempWorkerThread:你自定义的子类(也叫派生类);
  • ::继承标志,读作 “继承自”;
  • public公有继承(继承方式),是最常用的一种;
  • QThread:Qt 提供的父类(也叫基类),是线程相关的核心类。

整行代码的意思是:TempWorkerThread这个类公有继承QThread类,它可以使用QThread里的公有 / 保护成员(比如start()wait()方法,run()虚函数等),同时还能扩展自己的功能。

类定义OK后,写构造函数:

// 构造函数的声明:属于TempWorkerThread类,参数是QObject类型的父对象指针 TempWorkerThread::TempWorkerThread(QObject *parent) // 初始化列表:调用父类构造函数 + 初始化所有成员变量 : QThread(parent), // 调用父类QThread的构造函数,传递父对象 m_filterWindowSize(TEMP_FILTER_WINDOW_SIZE), // 初始化滤波窗口大小 m_isCollecting(false), // 初始状态:未采集 m_isPaused(false), // 初始状态:未暂停 m_baseTemp(25.0) // 基准温度初始化为25℃ { // 构造函数体:初始化8个温度缓冲区索引为0 // std::fill_n:把m_tempBufferIndices数组的前8个元素全部设为0 std::fill_n(m_tempBufferIndices, 8, 0); }

::什么意思,:又是什么意思?

代码核心部分解释

1. ::含义
  • TempWorkerThread::TempWorkerThread::作用域解析符,明确这个构造函数属于TempWorkerThread类;
  • 构造函数后的::初始化列表,先于函数体执行,负责:
    • 调用父类QThread(parent):因为子类继承了 QThread,必须先初始化父类;
    • 给所有成员变量赋初始值(比如m_baseTemp(25.0)),比在函数体里赋值更高效。
2. :含义

代码里: QThread(parent), m_filterWindowSize(TEMP_FILTER_WINDOW_SIZE), m_isCollecting(false), m_isPaused(false), m_baseTemp(25.0) 这部分的:,是 C++ 里构造函数特有的初始化列表语法,作用是:

  • 在构造函数体(大括号{}里的内容)执行之前,先初始化类的成员变量、或者调用父类的构造函数
  • 比在构造函数体里赋值更高效,也是 C++ 的最佳实践。
  • QThread(parent):因为TempWorkerThread继承了 Qt 的QThread类(线程类),所以创建子类对象时,必须先初始化父类,这是 C++ 继承的规则;
  • m_开头的变量是类的成员变量(属于这个类的 “属性”),是编程里的命名规范,方便识别;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1153940.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何查看Java版本及常用命令详解,零基础入门到精通,收藏这篇就够了

如何查看Java版本及常用命令详解 Java是一种广泛使用的编程语言&#xff0c;具有跨平台性和可移植性的特点&#xff0c;因此在开发和运行Java应用程序时&#xff0c;了解Java版本以及常用命令是至关重要的。本文将介绍如何查看Java版本以及一些常用的Java命令&#xff0c;帮助…

QModMaster:5分钟快速上手的工业通信调试终极指南

QModMaster&#xff1a;5分钟快速上手的工业通信调试终极指南 【免费下载链接】qModbusMaster 项目地址: https://gitcode.com/gh_mirrors/qm/qModbusMaster QModMaster作为一款基于Qt框架的免费开源ModBus主站工具&#xff0c;为工业自动化领域提供了完整的RTU和TCP协…

360Controller:让你的Xbox手柄在Mac上完美运行

360Controller&#xff1a;让你的Xbox手柄在Mac上完美运行 【免费下载链接】360Controller 项目地址: https://gitcode.com/gh_mirrors/36/360Controller 还在为Mac上Xbox手柄无法正常使用而烦恼吗&#xff1f;360Controller项目为macOS用户提供了完整的Xbox手柄驱动解…

服务端跨平台部署的7个黄金法则,第5个多数人从未听过

第一章&#xff1a;服务端跨平台部署的7个黄金法则&#xff0c;第5个多数人从未听过 在构建现代分布式系统时&#xff0c;服务端的跨平台部署已成为常态。无论是从Linux迁移到Windows容器&#xff0c;还是在macOS开发环境与生产级Kubernetes集群间同步行为&#xff0c;遵循一套…

‌测试复杂交互:拖拽可访问性——专业测试从业者的全面指南

拖拽交互的可访问性挑战概述‌在当代软件界面中&#xff0c;拖拽交互已成为核心功能&#xff08;如文件上传、UI元素重组&#xff09;&#xff0c;但其复杂性常被低估。据W3C统计&#xff0c;2025年全球数字产品中30%的可访问性问题源于拖拽操作&#xff0c;导致残障用户&#…

为什么UV Squares能成为Blender UV编辑的必备神器?

为什么UV Squares能成为Blender UV编辑的必备神器&#xff1f; 【免费下载链接】UvSquares Blender addon for reshaping UV selection into grid. 项目地址: https://gitcode.com/gh_mirrors/uv/UvSquares 想要在Blender中快速将杂乱的UV选择区域重塑为整齐的网格布局吗…

AI斗地主助手终极指南:从新手到高手的实战秘籍

AI斗地主助手终极指南&#xff1a;从新手到高手的实战秘籍 【免费下载链接】DouZero_For_HappyDouDiZhu 基于DouZero定制AI实战欢乐斗地主 项目地址: https://gitcode.com/gh_mirrors/do/DouZero_For_HappyDouDiZhu 还在为斗地主中的复杂决策而困扰吗&#xff1f;AI斗地…

蔚蓝档案自动化脚本使用指南:告别重复操作,游戏效率翻倍

蔚蓝档案自动化脚本使用指南&#xff1a;告别重复操作&#xff0c;游戏效率翻倍 【免费下载链接】blue_archive_auto_script 用于实现蔚蓝档案自动化 项目地址: https://gitcode.com/gh_mirrors/bl/blue_archive_auto_script 还在为每天重复的日常任务感到疲惫吗&#x…

如何快速搭建智能机器狗:openDogV2完整实践指南

如何快速搭建智能机器狗&#xff1a;openDogV2完整实践指南 【免费下载链接】openDogV2 项目地址: https://gitcode.com/gh_mirrors/op/openDogV2 想要亲手制作一只能够自主运动的智能机器狗吗&#xff1f;openDogV2开源项目为你提供了从零开始的完整解决方案。这个项目…

macOS Xbox手柄驱动终极指南:轻松实现完美游戏体验

macOS Xbox手柄驱动终极指南&#xff1a;轻松实现完美游戏体验 【免费下载链接】360Controller 项目地址: https://gitcode.com/gh_mirrors/36/360Controller 你是否在Mac上连接Xbox手柄时遇到无法识别或按键无响应的问题&#xff1f;别担心&#xff0c;360Controller就…

OFD转PDF神器:轻松解锁国产文档格式兼容新境界

OFD转PDF神器&#xff1a;轻松解锁国产文档格式兼容新境界 【免费下载链接】Ofd2Pdf Convert OFD files to PDF files. 项目地址: https://gitcode.com/gh_mirrors/ofd/Ofd2Pdf 还在为OFD文件打不开而烦恼吗&#xff1f;Ofd2Pdf这款神奇的格式转换工具&#xff0c;就像一…

MediaPipe Hands模型微调:适应特定场景的教程

MediaPipe Hands模型微调&#xff1a;适应特定场景的教程 1. 引言&#xff1a;AI 手势识别与追踪 随着人机交互技术的不断演进&#xff0c;手势识别正逐步成为智能设备、虚拟现实、增强现实乃至工业控制中的核心感知能力。传统的触摸或语音交互在某些场景下存在局限&#xff…

MyKeymap完整教程:为每个程序创建专属键盘布局

MyKeymap完整教程&#xff1a;为每个程序创建专属键盘布局 【免费下载链接】MyKeymap 一款基于 AutoHotkey 的键盘映射工具 项目地址: https://gitcode.com/gh_mirrors/my/MyKeymap 你是否曾经为不同软件中的快捷键冲突而烦恼&#xff1f;在Photoshop中精心设置的快捷键…

Z-Image跨境协作方案:全球节点加速访问

Z-Image跨境协作方案&#xff1a;全球节点加速访问 引言&#xff1a;跨国团队的AI协作痛点 想象一下这样的场景&#xff1a;你在上海办公室用Z-Image生成设计稿时&#xff0c;纽约的同事却因为模型下载速度只有50KB/s而无法同步工作&#xff1b;东京团队在视频会议中展示的AI…

Mac Mouse Fix:重新定义你的Mac鼠标操控边界

Mac Mouse Fix&#xff1a;重新定义你的Mac鼠标操控边界 【免费下载链接】mac-mouse-fix Mac Mouse Fix - A simple way to make your mouse better. 项目地址: https://gitcode.com/gh_mirrors/ma/mac-mouse-fix 在数字创作的世界里&#xff0c;鼠标是连接思维与作品的…

无需GPU也能流畅运行!AI手势追踪部署优化教程

无需GPU也能流畅运行&#xff01;AI手势追踪部署优化教程 1. 引言&#xff1a;让指尖成为交互入口 随着人机交互技术的演进&#xff0c;手势识别正逐步从科幻场景走向现实应用。无论是智能驾驶舱中的隔空控车、AR/VR中的自然操作&#xff0c;还是智能家居的无声指令&#xff…

ComfyUI-Impact-Pack项目中SAM模型加载问题的解决方案

ComfyUI-Impact-Pack项目中SAM模型加载问题的解决方案 【免费下载链接】ComfyUI-Impact-Pack 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-Impact-Pack 问题背景 在使用ComfyUI-Impact-Pack项目时&#xff0c;许多用户遇到了SAMLoader无法正确加载模型的问题…

Stretchly终极攻略:5步打造完美工作休息节奏

Stretchly终极攻略&#xff1a;5步打造完美工作休息节奏 【免费下载链接】stretchly The break time reminder app 项目地址: https://gitcode.com/gh_mirrors/st/stretchly 在现代数字化工作环境中&#xff0c;长时间面对屏幕已成为常态。Stretchly作为一款优秀的开源跨…

AI手势识别支持中文文档?本土化部署最佳实践

AI手势识别支持中文文档&#xff1f;本土化部署最佳实践 1. 引言&#xff1a;AI 手势识别与人机交互新范式 随着人工智能在边缘计算和自然交互领域的不断演进&#xff0c;AI手势识别正逐步从实验室走向实际应用场景。无论是智能硬件、远程会议系统&#xff0c;还是无障碍交互…

抖音下载工具实用指南:轻松掌握高效下载技巧

抖音下载工具实用指南&#xff1a;轻松掌握高效下载技巧 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 还在为如何保存无水印抖音视频而烦恼吗&#xff1f;这款开源的抖音下载工具能够帮助你轻松解决这个问…