【Qt】以QMap作为自定义类的静态数据

xiaoxiao2025-07-29  23

类的公共数据有几种存储方式,其中一种为把数据作为一个类的静态变量,这样类的所有对象都可以访问该数据,并且这个共享的数据只占有在类的公共空间,不会因为对象的多少而增加存储空间。

例如:

sutudent.h

class Student { public: static Qstring classStr; Studen(); ... }

sutudent.cpp

QString Student::classStr = "三年一班"; ...

 

这样就定义好了,之后就可以用Student::classStr来访问该字符串。

 

那么如果是个容器QMap该如何定义呢?

静态变量只能用静态函数去赋值,请看下例:

PItemInfo.h

class PItemInfo { public: static QMap<QString,QColor> colorMap; static QMap<QString,QColor> initColorMap(); PItemInfo(); }

PItemInfo.cpp

#include "PItemInfo.h" QMap<QString,QColor> PItemInfo::colorMap = PItemInfo::initColorMap(); QMap<QString, QColor> PItemInfo::initColorMap() { QMap<QString, QColor> map; map.insert("黑",QColor(Qt::black)); map.insert("灰",QColor(Qt::gray)); map.insert("深灰",QColor(Qt::darkGray)); map.insert("浅灰",QColor(Qt::lightGray)); map.insert("红",QColor(Qt::red)); map.insert("黄",QColor(Qt::yellow)); map.insert("蓝",QColor(Qt::blue)); map.insert("绿",QColor(Qt::green)); map.insert("透明",QColor(Qt::transparent)); return map; } PItemInfo::PItemInfo() { ... }

 

转载请注明原文地址: https://www.6miu.com/read-5033909.html

最新回复(0)