我可以使用點符號訪問某個類的靜態成員變量,還是應該粘貼到雙冒號訪問運算符中?訪問靜態成員變量
Q
訪問靜態成員變量
4
A
回答
13
如果您有一個實例變量,您可以使用點運算符訪問靜態成員(如果可訪問)。
#include <iostream>
using namespace std;
class Test{
public:
static int no;
};
int Test::no;
int main(){
cout << "\n" << Test::no;
Test::no=100;
Test a;
cout << "\n" << a.no;
return 0;
}
2
2
這並不一定是「你能不能」的問題(因爲編譯器會經常讓你過有警告),但「你應該」的問題。
靜態數據成員不是對象的一部分,因此不應該這樣對待。
訪問靜態數據成員爲「正常」的數據成員可以使代碼少readible太,因爲它可能暗示不同的語義(儘管這通常是不太可能)。
+0
它仍然很有用,特別是在編寫模板代碼時。它使您能夠同時僅具有類型,而不是一個類型名稱的值調用給定類型的靜態函數/訪問靜態成員(在按模板函數,這些函數的返回類型不能的typedef版返回如)。可能很難想象。 – 2014-01-15 16:30:22
相關問題
- 1. 訪問靜態成員靜態成員
- 2. 從靜態方法訪問非靜態成員變量
- 3. 顯式訪問靜態成員變量在靜態成員方法 - 在C++
- 4. F#靜態成員訪問
- 5. 訪問非靜態成員
- 6. 訪問靜態成員類
- 7. 問題有關靜態成員變量
- 8. 靜態成員變量
- 9. C++:靜態成員變量
- 10. 靜態變量與成員
- 11. 靜態成員變量
- 12. C++靜態成員變量
- 13. 訪問使用升壓靜態成員變量:: shared_ptr的
- 14. C++成員函數訪問私有靜態變量?
- 15. ES6:訪問靜態成員變量從密新
- 16. 從靜態方法訪問成員變量?
- 17. C++訪問類的靜態成員變量,沒有朋友
- 18. 訪問靜態類變量
- 19. 訪問靜態變量
- 20. 訪問靜態變量主
- 21. 靜態變量訪問
- 22. 靜態矢量成員變量
- 23. 靜態演員訪問靜態const類成員
- 24. 平移正常成員變量靜態成員變量導致問題
- 25. 訪問成員變量
- 26. EXC_BAD_ACCESS類別訪問靜態成員
- 27. 訪問單身般的靜態成員
- 28. 從靜態方法訪問類成員
- 29. 靜態函數訪問類的成員
- 30. 打字稿,訪問靜態成員
非常感謝。因爲我用我的編譯代碼VC表達與訪問諸如Test.no但沒有錯誤一類的靜態成員變量點符號。 – domlao 2009-08-25 03:36:25
'Test.no'不是引用靜態成員的有效方法。成員訪問操作符的左側必須是一個對象。所以,'Test :: no'或'a.no'。當然,對於靜態,更喜歡'Test :: no'。 – 2009-08-25 03:48:51