2
A
回答
-1
您還可以通過空指針調用靜態方法。下面的代碼將工作,但請不要使用它:)
struct Foo
{
static int boo() { return 2; }
};
int _tmain(int argc, _TCHAR* argv[])
{
Foo* pFoo = NULL;
int b = pFoo->boo(); // b will now have the value 2
return 0;
}
0
是的:
class mytoolbox
{
public:
static void fun1()
{
//
}
static void fun2()
{
//
}
static int number = 0;
};
...
int main()
{
mytoolbox::fun1();
mytoolbox::number = 3;
...
}
6
是的,這恰恰意味着什麼static
類成員:
struct Foo {
static int x;
};
int Foo::x;
int main() {
Foo::x = 123;
}
+0
此外,請參閱http://www.acm.org/crossroads/xrds2-4/ovp.html#SECTION00040000000000000000以獲取有關C++中靜態數據的有趣閱讀。 – 2009-10-28 21:52:27
2
在簡而言之,是的。
只要將一個靜態成員調用到任意位置,只需將該類名稱視爲一個名稱空間即可。
class Something
{
static int a;
};
// Somewhere in the code
cout << Something::a;
+0
只能在語法上下文中將類名稱視爲命名空間,而不能以任何其他方式處理。 – 2009-10-28 21:47:52
3
在另一方面,這就是命名空間是爲:
namespace toolbox
{
void fun1();
void fun2();
}
的靜態函數的類的唯一用途是用於政策類。
相關問題
- 1. C++類的靜態成員
- 2. C++類中的靜態常量成員
- 3. C#靜態類 - 靜態類不能有非靜態成員
- 4. C++靜態成員
- 5. 「靜態」類成員
- 6. '靜態'的C++類成員函數?
- 7. C++靜態對象中的類的靜態數據成員和靜態方法?
- 8. 類的靜態成員
- 9. C++類的靜態成員的*靜態庫*
- 10. C++(非內置/類)靜態成員
- 11. 訪問靜態成員靜態成員
- 12. C++:靜態成員變量
- 13. C++:複製靜態成員?
- 14. 靜態類成員python
- 15. 指向靜態類成員
- 16. 靜態線程函數訪問非靜態類成員在C++
- 17. C#中的靜態成員繼承
- 18. C++中的靜態成員數組
- 19. 兩個DLL中的靜態成員C++
- 20. SDL_Loadbitmap作爲類中的靜態成員
- 21. 初始化一個類中的靜態數據成員(類)C++
- 22. 靜態函數和多線程中的C++靜態成員
- 23. 無法在C#中的靜態類中聲明實例成員
- 24. 是默認靜態內部類的成員靜態在java中
- 25. Java的靜態成員和C++的靜態成員之間的區別
- 26. Java中的靜態成員
- 27. 在C++中初始化靜態成員
- 28. 靜態演員訪問靜態const類成員
- 29. 在C++中的同一類的靜態成員變量
- 30. 靜態成員類與普通的類似c的界面
從技術上講,這是未定義的行爲。出於任何原因你不能引用空指針。你可以用空指針做的唯一的事情是:a)爲它指定另一個指針,並且b)將它與另一個指針進行比較。 – KeithB 2009-11-30 16:43:36
在訪問成員的情況下,該/ pFoo指針將取消引用。靜態函數不訪問成員,也沒有成員。即使非虛擬方法也可以毫無例外地通過空指針來調用。他們只在訪問成員時崩潰。任何人都應該知道並接受這個以尋找一些奇怪的錯誤。 – 2012-03-28 07:48:11