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_ 這種方式來使用。