2012-03-04 59 views
3

http://sourcemaking.com/design_patterns/strategy/cpp/1在課程結束時聲明私人成員有什麼優勢?

class TestBed 
{ 
    public: 
    enum StrategyType 
    { 
     Dummy, Left, Right, Center 
    }; 
    TestBed() 
    { 
     strategy_ = NULL; 
    } 
    void setStrategy(int type, int width); 
    void doIt(); 
    private: 
    Strategy *strategy_; 
}; 

注意如何私有成員已經在年底宣佈。我在其他幾個地方看過這種編程風格,但不知何故,我發現首先宣佈私有成員更容易閱讀。

在課程結束時聲明私人成員是否有任何優勢,如上所述?

+1

這只是一個風格問題。沒有任何好處 – JaredPar 2012-03-04 03:18:22

+1

這樣做的唯一好處是,如果有人正在瀏覽您的標題,他可以首先看到有趣的公衆成員。這只是一個問題,如果你的課程很長,你應該避免。 – 2012-03-04 03:20:16

+0

我唯一想補充的就是你喜歡的任何東西,你可能想試着把所有的公共/保護/私密放在一起。這可能只是我,但一些公衆,然後一些私人,然後更多的公衆等更難以閱讀。 – 2012-03-04 06:06:12

回答

6

在閱讀類聲明時,最重要的是公共接口,因此在頂部是有意義的。你的眼睛不應該被吸引到執行的私人成員。

雖然這並不重要。選擇一種風格(或給予一個)並堅持下去。

其實,我真正能想到的唯一改變就是成員初始化的順序。儘管這很少問題。

0

絕對不是,我不明白爲什麼你應該有好處。

這只是個人品味的問題,您應該試着瞭解您的眼睛喜歡在哪裏尋找它們並堅持這種方式。

0

在最初的C++實現中,所有成員都必須在類的開始處聲明,或者方法定義中的代碼不能看到它們。在最後定義成員的能力後來被添加,一些人享受他們的新自由,採用了這種風格並堅持下來。不過,這兩個位置都有意義。

0

在一個類的最後聲明私有成員絕對是一個命名約定。不需要但很容易閱讀,因爲通常會在公共成員之後列出它們。

但是,您也可以省略「private:」部分,只聲明您的私人會員不在公共會員之列。如果您不將這些變量置於「private:」部分之下,並且只是在「public:」區域之外(在本例中爲上方)聲明它們,則它們應該自動默認爲私有。

相關問題