結構體 類

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



發佈了88 篇原創文章 · 獲贊 52 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章