類static成員
類static成員引進(jìn):有時特定類的全體對象需要訪問一個全局對象。
★為什么用static成員而不是全局對象?
---- static對象名字在類作用域中,可以有效避免命名沖突,并且清晰顯示程序意圖。
---- 可以實施封裝(static成員可以定義為private,而全局對象不可以)
★ 如何調(diào)用? ---- class A a; A::static_mem; a.static_mem;
★ 聲明和定義
---- static成員函數(shù)在類定義體內(nèi)部外部定義均可。在類定義體外定義時不加(不可以加)static修飾。
---- static數(shù)據(jù)成員必須在類定義體外部定義(正好一次)(在類定義體外聲明并定義)
class A{public : static int n;} int A::n = 10;
---- const static數(shù)據(jù)成員可以(也可以不)在類定義內(nèi)初始化,但必須在類定義體外部重新聲明(不可以加static修飾符,不可以賦初值)
★ static數(shù)據(jù)成員其他特性:
----一般地,在類的內(nèi)部不能有該類類型的變量(或函數(shù)形參),最多只能有該類類型的指針或引用做變量類型(或函數(shù)形參). static數(shù)據(jù)成員則不受這個限制。
---- 類的static數(shù)據(jù)成員可以作為函數(shù)默認(rèn)實參
---- static成員的繼承:如果基類有static成員,則整個繼承層次中只有一個這樣的成員。每個static成員總是只有一個實例。

2

3

4

5

6

7



8

9

10



11

12

13

14

15

16

17

18

19



20

21

22

23

24

25

26



27

28

29



30

31

32

33

34

35

36



37

38

39

40

41

42

43

44

45

46

posted on 2010-01-08 12:22 幸運草 閱讀(1545) 評論(6) 編輯 收藏 引用 所屬分類: C++