使用单例模式

#pragma once

//功能: 1. 全局的配置文件
//		2. 单例模式进行读取
#include <iostream>
#include<string>
#include <QString>
#include <QByteArray>
using namespace std;
typedef struct _SCompass
{
	double XOffset;
	double YOffset;
	double ZOffset;
}SCompass;
typedef struct _SConfig
{
	QString MProtocol;
	QString MPortNum;
	SCompass ObSCompass;
	double MRotationAngle;
}SConfig;
//单例模式
class Config
{
private:
	//静态指针保存唯一对象
	static Config* pConfig;
private:
	//防止用户继续使用Config实例其它对象,将构造拷贝构造私有化
	Config() { count = 0; } 
	Config(const  Config& ob) { count = 0; }
	int count;
	SConfig sConfig;
public:
	//提供一个公共的方法 获取唯一的实例地址
	static Config* getSingle();
	void MChangeProtocolAndPortNum(QString& MProtocol, QString& MPortNum);
	void MChangeCompass(double XOffset, double YOffset,double ZOffset);
	void MChangeRotationAngle(double MRotationAngle);
	void MqDebug();
	void MWriteXml();
};




资源:https://download.csdn.net/download/weixin_44715313/18665085

总结:在传递写入信号的时候,也可以使用单例模式这个类,为其添加一个object信号槽机制,由于每个界面都会继承它,故可以在每个界面进行一个监听(为什么要每个界面都监听?因为数据分布在各个界面)。

这里使用单例模式的原因:在不同文件里对同一个类对象进行修改。
先采用信号的所谓的转发方式进行,文件一多则代码冗余

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值