当前位置: 首页 > news >正文

qt 用宏控制静态接口的统一

1.概要

/**
 * 单件宏实验
 * 创建一个可以生成单件的宏
 * 起因:想让有些控件单件,但是c++不支持静态的继承(c#支持)
 * 那么如果保证这些接口的统一呢,用宏
 */

2.代码

2.1 a.h

#ifndef A_H
#define A_H#include "mocro.h"class A
{
public:createMy(A);//static A* my;//static A* getMy();A();void fun();
};#endif // A_H

2.2 a.app

#include "a.h"
#include <QDebug>/*
A* A::my = new A();
A* A::getMy(){return my;
}*/initMy(A);A::A() {}void A::fun(){qDebug() << "A my fun";
}

 

2.3 b.h

#ifndef B_H
#define B_H
#include "mocro.h"class B
{
public:createMy(B);B();void fun();
};#endif // B_H

2.4 b.app

#include "b.h"
#include <QDebug>initMy(B);B::B() {}void B::fun(){qDebug() << "B my fun";
}

2.5 main.app

#include <QCoreApplication>
#include "a.h"
#include "b.h"
/*** 单件宏实验* 创建一个可以生成单件的宏* 起因:想让有些控件单件,但是c++不支持静态的继承(c#支持)* 那么如果保证这些接口的统一呢,用宏*/
int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);A* pA = A::getMy();pA->fun();B* pB = B::getMy();pB->fun();return a.exec();
}

3.运行结果

A my fun
B my fun

相关文章:

qt 用宏控制静态接口的统一

1.概要 /** * 单件宏实验 * 创建一个可以生成单件的宏 * 起因&#xff1a;想让有些控件单件&#xff0c;但是c不支持静态的继承&#xff08;c#支持&#xff09; * 那么如果保证这些接口的统一呢&#xff0c;用宏 */ 2.代码 2.1 a.h #ifndef A_H #define A_H#include &…...

pdf怎么转换成jpg,本地转换还是在线转换?

PDF&#xff08;Portable Document Format&#xff09;和JPG&#xff08;Joint Photographic Experts Group&#xff09;这两种文件格式在我们的日常生活和工作中扮演着举足轻重的角色。PDF因其跨平台、保持原样性强的特点&#xff0c;被广泛应用于文件传输和存储&#xff1b;而…...

【物联网】802.15.4简介

目录 一、概述 二、802.15.4主要特点 2.1 工作频段和数据速率 2.2 支持简单器件 2.3 信标方式和超帧结构 2.4 数据传输和低功耗 三、低功耗 一、概述 802.15.4包括用于低速无线个人域网(LR-WPAN)的物理层和媒体接入控制层两个规范。它能支持消耗功率最少&#xff0c;一般…...

C++基础语法:复制构造函数,赋值构造函数及浅复制,深复制

前言 "打牢基础,万事不愁" .C的基础语法的学习 引入 前一篇帖子C基础语法:类构造函数之普通构造函数-CSDN博客讲了普通构造函数,还有 复制构造函数,赋值运算符以及延伸出来的浅复制和深复制问题,做个补充. 内容主要参考自<<C Prime Plus>> 6th Edition …...

架构是怎样练成的-楼宇监控系统案例

目录 概要 项目背景 原系统设计方案 改进后的设计方案 小结 概要 绝大多数人掌握的架构都是直接学习&#xff0c;慢慢地才能体会到一个架构的好处。架构是一种抽象&#xff0c;是为了复用目的而对代码做的抽象。通过一个项目的改造&#xff0c;理解架构是如何产生的&…...

valgrind使用浅谈

1、Valgrind 简介 Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具&#xff0c;它可在以下平台上运行&#xff1a; X86/Linux、AMD64/Linux、ARM/Linux、ARM64/Linux、PPC32/Linux、PPC64/Linux、PPC64LE/Linu x、S390X/Linux、MIPS32/Linux、MIPS64/Li…...

强化学习专题:强化学习知识梳理(一)

2024/6/23&#xff1a; 前段时间有幸完成了大学期间的第一篇论文。在面试之前复盘一下关于自己论文中DQN的一些相关点。 浅谈主要区别&#xff08;在线 or 离线&#xff09; 首先&#xff0c;一切的开始是强化学习中时序差分方程&#xff0c;这体现了强化学习方法的优化策略。在…...

深入JVM:详解JIT即时编译器

文章目录 深入JVM&#xff1a;详解JIT即时编译器一、序言二、基础概念1、何为JIT即时编译2、热点代码 三、HotSpot内置的即时编译器1、C1编译器2、C2编译器3、分层编译3.1 协作流程 四、常见JIT优化技术1、方法内联2、逃逸分析&#xff08;1&#xff09;同步锁消除&#xff08;…...

ORBSLAM3_ROS_Ubuntu18_04环境搭建安装

orbslam3安装 ORB-SLAM3配置及安装教程&#xff08;2023.3&#xff09;_orbslam3安装-CSDN博客 换源&#xff0c;换成国内的 搜索software 安装工具 sudo apt install git sudo apt update sudo apt install gcc g cmake安装 cmake安装新版本 ubuntu20.04安装cmake详细…...

【opencv - C++ - Ubuntu】putText 显示中文最快方法

话不多说&#xff0c;直接上代码 #include <iostream> #include <opencv2/opencv.hpp> #include <opencv2/freetype.hpp>using namespace std; using namespace cv;int main(void) {Mat image(1000, 1800, CV_8UC3, Scalar(200,162,33));Ptr<freetype::F…...

百度网盘下载速度慢的解决办法

目录 一、背景 二、解决办法 1、点击三个竖点&#xff0c;再点设置 2、点击传输&#xff0c;再点击去开启该功能 3、点击同意&#xff0c;开启优化速率 三、结果 四、备注 一、背景 当你不是百度网盘会员时&#xff0c;你在使用百度网盘下载时&#xff0c;是否下载速度太…...

Python api接口 异步

Python API接口异步编程简介 在现代的软件开发中&#xff0c;大多数应用都需要通过API接口与其他系统进行交互。Python是一种非常流行的编程语言&#xff0c;因此许多开发者选择使用Python来构建他们的API接口。在一些情况下&#xff0c;API接口需要进行异步编程&#xff0c;以…...

Java 和 Kotlin 单例模式写法对比

目录 1、饿汉模式 Java 写法&#xff1a; Kotlin 写法&#xff1a; Kotlin 这段代码反编译&简化后如下&#xff1a; 2、懒汉模式&#xff0c;静态同步方法 Java 写法&#xff1a; Kotlin 写法&#xff1a; Kotlin 这段代码反编译&简化后如下&#xff1a; 3、懒…...

解析connectionReset异常的原因与解决方案

解析connectionReset异常的原因与解决方案 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨Java中connectionReset异常的原因及其解决方案。这…...

mindspore打卡第9天 transformer的encoder和decoder部分

mindspore打卡第9天 transformer的encoder和decoder部分 import mindspore from mindspore import nn from mindspore import ops from mindspore import Tensor from mindspore import dtype as mstypeclass ScaledDotProductAttention(nn.Cell):def __init__(self, dropout_…...

Python实现IPv4地址和16进制互相转换

Python实现IPv4地址和16进制互相转换 import socketdef ip_to_hex16(ipaddr):# 使用 socket 库中的方法将IP地址转换为网络字节序的二进制表示hex_bytes socket.inet_aton(ipaddr)# 将二进制数据转换为整数, 其中byteorderbig 表示使用大端字节序&#xff08;从高位到低位&…...

计算机视觉 | 基于图像处理和边缘检测算法的黄豆计数实验

目录 一、实验原理二、实验步骤1. 图像读取与预处理2. 边缘检测3. 轮廓检测4. 标记轮廓序号 三、实验结果四、完整代码 Hi&#xff0c;大家好&#xff0c;我是半亩花海。 本实验旨在利用 Python 和 OpenCV 库&#xff0c;通过图像处理和边缘检测算法实现黄豆图像的自动识别和计…...

深入分析 Android BroadcastReceiver (七)

文章目录 深入分析 Android BroadcastReceiver (七)1. 高级应用场景1.1 示例&#xff1a;动态权限请求1.2 示例&#xff1a;应用内通知更新 2. 安全性与性能优化2.1 示例&#xff1a;设置权限防止广播攻击2.2 示例&#xff1a;使用 LocalBroadcastManager2.3 示例&#xff1a;在…...

C++中的数据结构

一.STL标准库 结构:STL中有六大组件&#xff0c;分别是&#xff1a;容器&#xff0c;算法&#xff0c;迭代器&#xff0c;仿函数&#xff0c;配接器&#xff0c;配置器&#xff1b;以下分别介绍这六大组件中的最主要的三个。 1.容器 容器来配置存储空间&#xff0c;算法通过…...

武汉星起航:一站式服务,助力亚马逊卖家高效运营,实现收益飞跃

在跨境电商的浪潮中&#xff0c;武汉星起航电子商务有限公司以其独特的一站式跨境电商服务&#xff0c;为众多亚马逊卖家提供了强有力的支持&#xff0c;助力他们在不断发展的市场中脱颖而出&#xff0c;实现收益的大幅提升。 武汉星起航的一站式跨境电商服务&#xff0c;以其…...

构建本地AI智能体:从LLM工具调用到自动化工作流实战

1. 项目概述&#xff1a;一个能“听懂”你需求的本地AI助手最近在折腾本地大语言模型&#xff08;LLM&#xff09;的朋友&#xff0c;可能都绕不开一个痛点&#xff1a;模型本身能力很强&#xff0c;但怎么让它真正“听话”&#xff0c;按照你的具体需求去执行任务&#xff1f;…...

PyTorch实战:基于ResNet-50的室内场景图像分类(附完整代码与MIT67数据集处理)

1. 室内场景分类与ResNet-50实战概述 室内场景分类是计算机视觉中的经典任务&#xff0c;比如区分客厅、厨房、卧室等不同功能区域。这个任务看似简单&#xff0c;但实际应用中会遇到光照变化、视角差异、物体遮挡等挑战。我去年参与过一个智能家居项目&#xff0c;就遇到过摄像…...

NotebookLM企业许可陷阱全解析,合同里没写的5个自动续费条款正在吞噬你的IT预算

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM定价性价比分析 NotebookLM 是 Google 推出的面向研究与知识整合的 AI 笔记工具&#xff0c;其核心价值在于对用户上传文档&#xff08;PDF、TXT 等&#xff09;进行语义理解并生成上下文精准…...

基于Next.js与MDX构建现代化静态博客:技术选型与实战指南

1. 项目概述&#xff1a;一个面向开发者的现代化博客引擎 如果你是一名前端开发者&#xff0c;或者对使用 React 生态构建个人博客、技术文档站点感兴趣&#xff0c;那么 leerob/next-mdx-blog 这个项目绝对值得你花时间深入研究。这不是一个简单的博客模板&#xff0c;而是…...

从代码到知识图谱:构建交互式源码可视化分析工具

1. 项目概述&#xff1a;从“代码仓库”到“知识图谱”的跃迁在软件开发领域&#xff0c;我们每天都要面对海量的代码库。无论是为了复用轮子、学习最佳实践&#xff0c;还是为了理解一个庞大项目的架构&#xff0c;我们通常的做法是&#xff1a;克隆仓库、打开IDE、在文件和目…...

不止是多旋翼:用CopterSim玩转固定翼仿真,从模型替换到3D场景飞行全记录

从多旋翼到固定翼&#xff1a;解锁CopterSim的跨机型仿真潜能 当大多数人提起CopterSim时&#xff0c;第一反应往往是多旋翼无人机的仿真利器。但鲜为人知的是&#xff0c;这款工具蕴藏着更广阔的仿真可能性——通过巧妙的模型替换与参数调整&#xff0c;它能够完美模拟固定翼飞…...

三步解锁Chrome浏览器中的Markdown阅读新体验

三步解锁Chrome浏览器中的Markdown阅读新体验 【免费下载链接】markdownReader markdownReader is a extention for chrome, used for reading markdown file. 项目地址: https://gitcode.com/gh_mirrors/ma/markdownReader 在Chrome浏览器中直接打开Markdown文件时&…...

实测Taotoken多模型聚合服务的延迟与稳定性观感分享

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 实测Taotoken多模型聚合服务的延迟与稳定性观感分享 作为需要频繁调用大模型API的开发者&#xff0c;服务的稳定性和可预测性是影响…...

【Matlab】车牌识别与车辆属性提取系统设计与仿真实现

【Matlab】车牌识别与车辆属性提取系统设计与仿真实现 一、引言 在智能交通、安防监控、智能停车管理、交通违章稽查等领域,车牌识别与车辆属性提取是实现智能化管理、精准化管控的核心技术支撑。车牌作为车辆的唯一身份标识,其快速、精准识别是实现车辆动态追踪、身份核验…...

为什么30+文档平台的一键下载神器让技术爱好者疯狂?因为你能看到多少,就能下载多少

为什么30文档平台的一键下载神器让技术爱好者疯狂&#xff1f;因为你能看到多少&#xff0c;就能下载多少 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档&#xff0c;但是相关网站浏览体验不好各种广告&#xff0c;各种登录验证&#xff0c;需要很多步骤才…...