8、静态成员1.cpp 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. //4.2.8 静态成员
  2. //静态成员就是在成员变量和成员函数前加上关键字ststic,称为静态成员
  3. //静态成员分为:
  4. //⚪静态成员变量
  5. //->所有对象共享同一份数据
  6. //->在编译阶段分配内存
  7. //->类内声明,类外初始化
  8. //⚪静态成员函数
  9. //->所有对象共享同一个函数
  10. //->静态成员函数只能访问静态成员变量
  11. #if(0)
  12. #include <iostream>
  13. class Person
  14. {
  15. public:
  16. //1、所有对象都共享同一分数据
  17. //2、在编译阶段就分配了内存
  18. //3、类内声明,类外初始化操作
  19. static int m_A;
  20. //静态成员变量也是有访问权限的
  21. private:
  22. static int m_B;
  23. };
  24. int Person::m_A = 100;
  25. int Person::m_B = 200;
  26. void test01()
  27. {
  28. Person p;
  29. //100
  30. std::cout << p.m_A << std::endl;
  31. Person p2;
  32. p2.m_A = 200;
  33. std::cout << p.m_A << std::endl;
  34. //std::cout << p.m_B << std::endl 类外访问不到私有静态成员变量
  35. }
  36. void test02()
  37. {
  38. //静态成员变量 不属于某个对象上,所有对象都共享同一份 数据
  39. //因此静态成员变量有两种访问方式
  40. //1、通过对象进行访问
  41. //Person p;
  42. //std::cout << p.m_A << std::endl;
  43. //2、通过类名进行访问
  44. std::cout << Person::m_A << std::endl;
  45. }
  46. int main()
  47. {
  48. //test01();
  49. test02();
  50. system("pause");
  51. return 0;
  52. }
  53. #endif