Qt枚举类型获取对应数字和字符串-3
前面已经介绍过Qt中使用enum返回对应数字和字符串的示例,链接如下:
- 示例1: Qt枚举类型获取对应数字和字符串_tony_xj的博客-CSDN博客
- 示例2: Qt枚举类型获取对应数字和字符串-2_tony_xj的博客-CSDN博客
当上述示例存在问题, 说明如下:
- 定义对象的数字和字符串是分开的,极容易出错,
- 没有体现出封装的特性.
- 上述问题也是由C++ enum造成的.
所以我们推出了示例3,使用类来代替enum,大大提升封装性和扩展性.
season2.h
#ifndef SEASON2_H
#define SEASON2_H#include
#include class Season2
{
private:Season2(int code, QString value="");static void initial();public:static Season2 Spring;static Season2 Summer;static Season2 Automn;static Season2 Winter;//static int code(Season2 season);static QString value(Season2 season);static QString msg(Season2 season);private:int m_code;QString m_value;};#endif // SEASON2_H
season2.cpp
#include "season2.h"//补充定义
Season2 Season2::Spring(1, "spring");
Season2 Season2::Summer(2, "summer");
Season2 Season2::Automn(3, "automn");
Season2 Season2::Winter(4, "winter");Season2::Season2(int code, QString value)
{m_code = code;m_value = value;
}int Season2::code(Season2 season)
{return season.m_code;
}QString Season2::value(Season2 season)
{return season.m_value;
}QString Season2::msg(Season2 season)
{return "code="+QString::number(season.m_code)+", value="+season.m_value;
}
main.cpp
#include
#include "season2.h"int main(int argc, char *argv[])
{qInfo()<<"aaaa21"<
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
