2013-11-21 184 views
2

我是新來的C++靜態varibles.i不知道如何從派生類成員function.ExampleC++如何訪問派生類中的基類靜態成員?

#include <iostream.h> 
    class base  // base class 
{ 
    protected: 
    static int value; 
    }; 

int base::value=0; // static variable initalization 

class derived:public base 
{ 
    public: 
    get_variable(); 
    }; 

我知道像靜態變量訪問基礎的靜態成員是一類variable.we可以只有通過使用不與對象綁定的類名訪問(如果我錯了,請糾正我)。我的問題是如何訪問派生類的成員函數中的靜態變量get_varible訪問靜態變量。

+0

只要變量是私人的,你就不能在派生類中訪問它。 –

回答

1

只要使用它,因爲它是派生類的成員。

int derived::get_variable() 
{ 
    return value; 
} 
+1

變量是私人的,但如果他改變它來保護你的解決方案是好的 –

+0

@Koren:我必須改變我的答案,否則,我會投票。謝謝你的評論。 – David

2

你應該在基類更改privateprotected。 您的private static變量只能在base類中訪問。

0

您可以從派生類訪問的變量是這樣的:

int derived::get_variable() 
{ 
    return base::value; 
} 

您需要使用的基類的名稱,因爲變量是靜態的,你可以訪問它,因爲它是受保護。

如解釋herehere,在某些情況下不允許從派生類訪問受保護成員的額外檢查不適用於靜態成員。

相關問題