QT在编写存储过程时,常会用到类,结构体。类和结构体本质上都是差不多的,它们都是保存数据,用于数据的存储。他们唯一的不同是默认的数据类型访问权限。
类的默认访问权限是私有的,而结构体的默认访问权限是公有的。如下例:
struct TestA {
QString a;
};
class TestB {
QString b;
};
在TestA 中 QString a 默认是公有的,就如同在类的public: 下面, 而QString b默认是私有的,就如同在private 下面。
结构体在使用的过程中,通常会出现嵌套使用,如:
struct TestCenterBrowserViewOptions
{
static const QString link_;
static const QString link_e_scheme_;
static const QString link_scheme_;
struct
{
QString eScheme;
QString scheme;
QString mailScheme;
QString video;
} link;
struct
{
QString sessionId;
QString seriesId;
QString episode;
} query;
};
TestCenterBrowserViewOptions *m_opt = new TestCenterBrowserViewOptions;
m_opt->link.eScheme = ...;
m_opt->query.url = ....;
这样就可以让结构更加清析明了。比一个结构体里存储更具有可读性。
struct TestCenterBrowserViewOptions
{
static const QString url_;
static const QString link_;
};
const QString TestCenterBrowserViewOptions::url_ = QLatin1String("url");
const QString TestCenterBrowserViewOptions::link_ = QLatin1String("link");
这是结构体与静态常量的结合,使用静态常量时,可以通过:
typedef TestCenterBrowserViewOptions Opt;
Opt::link_ 这种方式来使用。