当前位置: 首页 > 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

http://www.lryc.cn/news/386669.html

相关文章:

  • pdf怎么转换成jpg,本地转换还是在线转换?
  • 【物联网】802.15.4简介
  • C++基础语法:复制构造函数,赋值构造函数及浅复制,深复制
  • 架构是怎样练成的-楼宇监控系统案例
  • valgrind使用浅谈
  • 强化学习专题:强化学习知识梳理(一)
  • 深入JVM:详解JIT即时编译器
  • ORBSLAM3_ROS_Ubuntu18_04环境搭建安装
  • 【opencv - C++ - Ubuntu】putText 显示中文最快方法
  • 百度网盘下载速度慢的解决办法
  • Python api接口 异步
  • Java 和 Kotlin 单例模式写法对比
  • 解析connectionReset异常的原因与解决方案
  • mindspore打卡第9天 transformer的encoder和decoder部分
  • Python实现IPv4地址和16进制互相转换
  • 计算机视觉 | 基于图像处理和边缘检测算法的黄豆计数实验
  • 深入分析 Android BroadcastReceiver (七)
  • C++中的数据结构
  • 武汉星起航:一站式服务,助力亚马逊卖家高效运营,实现收益飞跃
  • 从灵感到实践:Kimi辅助完成学术论文选题的文艺之旅
  • 华为od-C卷200分题目4 -电脑病毒感染
  • show-overflow-tooltip 解决elementui el-table标签自动换行的问题
  • 数字社交的领航者:解析Facebook的引领作用
  • 深度分析 Apache Flink 窗口机制
  • ubuntu 软链接(ubuntu20.04)
  • 如何在LabVIEW中使用FPGA模块
  • FPGA开发技能(7)Vivado设置bit文件加密
  • 【算法专题--链表】旋转链表 -- 高频面试题(图文详解,小白一看就懂!!)
  • ElasticSearch 和 MySQL的区别
  • Linux部署wordpress站点