C++——静态数据成员

悠悠 2022-04-17 03:58 275阅读 0赞

静态成员分为静态数据成员和静态成员函数

一 静态数据成员的概念

静态数据成员不是某个对象的的成员,而是同一个类所以对象共享的成员,其值对每个对象都是一样的;

静态数据成员具有全局性;是类域中的全局变量,不具体属于哪一个对象。

在运行之前,编译阶段就为静态数据成员分配了存储空间;

二 静态数据成员的初始化:

不能在构造函数或者其他成员函数中进行初始化;

要在类体外进行初始化;

  1. //静态数据成员的初始化
  2. //数据类型 类名 作用域限定符:: 数据成员 值
  3. int Point::x=1;
  4. int Point::y=2;
  5. int Point::z=3;

三 静态数据成员的访问:

1. 访问公有静态数据成员:①通过成员函数 ②通过对象 ③通过类名加作用域限定符(初始化)

2. 访问私有静态数据成员:只能在成员函数中;(初始化例外)

3. 访问保护静态数据成员:只能在成员函数中;**(初始化例外)**

  1. #include<iostream.h>
  2. class Point
  3. {
  4. private:
  5. static int x; //静态私有数据成员
  6. public:
  7. static int y; //静态公有数据成员
  8. protected:
  9. static int z; //静态保护数据成员
  10. public:
  11. void showx()
  12. {
  13. cout<<"通过成员函数访问静态私有数据成员:x="<<x<<endl;
  14. }
  15. void showz()
  16. {
  17. cout<<"通过成员函数访问静态保护数据成员:z="<<z<<endl;
  18. }
  19. void showy()
  20. {
  21. cout<<"通过成员函数访问静态公有数据成员:y="<<y<<endl;
  22. }
  23. };
  24. //静态数据成员的初始化
  25. //数据类型 类名 作用域限定符:: 数据成员 值
  26. int Point::x=1;
  27. int Point::y=2;
  28. int Point::z=3;
  29. int main()
  30. {
  31. Point p;
  32. p.showx();
  33. p.showy();
  34. p.showz();
  35. cout<<"通过对象访问静态公有数据成员:y="<<p.y<<endl;
  36. cout<<"通过类名+::访问静态公有数据成员:y="<<Point::y<<endl;
  37. return 0;
  38. }

运行结果:

20181112232741459.png

发表评论

表情:
评论列表 (有 0 条评论,275人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C++ 静态成员

    静态成员就是在成员变量和成员函数前加上关键字static,称为静态成员 静态成员分为: ●静态成员变量 。所有对象共享同一份数据 。在编译阶段分配内存

    相关 静态数据成员静态成员函数

    类中的静态成员真是个让人爱恨交加的特性。我决定好好总结一下静态类成员的知识点,以便自己在以后面试中,在此类问题上不再被动。 静态类成员包括静态数据成员和静态函数成员两部分。

    相关 c++:静态成员

    重要性质 1. 静态数据成员类型可以是长廊、引用、指针、类类型等 2. 类的静态成员存在于任何对象之外,不属于任何一个对象,对象共享 3. 静态成员函数不能声明成c

    相关 C++——静态数据成员

    静态成员分为静态数据成员和静态成员函数 一 静态数据成员的概念 静态数据成员不是某个对象的的成员,而是同一个类所以对象共享的成员,其值对每个对象都是一样的; 静态数据成员