簡體   English   中英

類成員函數是static和private

[英]Class member functions static and private

有一些類成員函數說f()私有和靜態是否有意義? 例如

class MyClass
{
 ...
private:

static int foo();
}

謝謝。

您好,感謝您的所有評論! 好,我知道了。 是的,確實最初我開始在我的班級中使用靜態函數,因為它們與我班級的對象無關 - 正在做其他一些操作。 現在我也意識到他們不需要公開。 所以,我想我會這樣離開他們。 當我刪除靜態關鍵字時,我開始出現一些錯誤(顯然是因為它在整個課程中的使用方式,所以我現在很懶,修復那些,只會讓它變成私有而留下靜態:))。

是。 例如:用於初始化或其他目的的私有靜態成員函數。

有關更多信息,請參閱此文章: 私有靜態成員函數的用途是什么?

當然,有時候。 例如,同一類的公共靜態方法使用的實用程序函數。

是的,擁有靜態私有成員函數是有道理的。 例如,它可能是僅由同一類的其他成員使用的無狀態實用程序函數。

不,你的班級沒有意義。 由於MyClass沒有其他成員,因此任何實體都無法看到您的MyClass::foo

絕對! 想象一個純靜態的類,如統計函數類。 輔助函數可以是私有的和靜態的。

當然。 您可以將它用於您的類的內部目的,在私人函數中,即

class A{
    public:
        static int i_;
private:
    void privatef(){hiden_i_++;}
    static int hiden_i_;
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM