• 【C++】之类和对象 - static静态成员


    用static修饰的成员变量,称为静态成员变量

    用static修饰的成员函数,称为静态成员函数

    静态成员变量特点

    1.静态成员变量在全局/静态区开辟空间,属于类内的全局变量

    2.整个类只有一个所以必须在类外初始化,不能使用初始化列表

    3.在定义时不添加static关键字,在类中声明时添加

    4.静态成员变量可以使用空间域直接访问,例如类名::静态成员

    5.是类中的成员,受访问限定符的限制,如public、protected、private

    静态成员函数函数特点

    1.静态成员函数没有this指针,不能访问任何非静态成员

    2.是类中的成员,受访问限定符的限制,如public、protected、private

    两个问题

    1.静态成员函数可以调用非静态成员函数吗?

    答:不可以,静态成员函数没有this指针

    2.非静态成员函数可以调用静态成员函数吗?

    答:可以

    代码

    1. #include
    2. using namespace std;
    3. //静态成员
    4. class Date
    5. {
    6. public:
    7. //构造函数
    8. Date(int year, int month, int day)
    9. :_year(year),_month(month),_day(day)
    10. {
    11. ;
    12. }
    13. //静态成员变量声明为共有
    14. static int _static1;
    15. static int GetStatic()
    16. {
    17. return _static2;
    18. }
    19. private:
    20. int _year;
    21. int _month;
    22. int _day;
    23. static int _static2;
    24. };
    25. //公有/私有静态成员变量直接在全局定义即可(只能初始化一次)
    26. //注:类内静态成员变量只能在全局初始化一次且不可进行其他操作
    27. int Date::_static1 = 10;
    28. int Date::_static2 = 20;
    29. int main()
    30. {
    31. cout << Date::_static1 << endl;
    32. cout << Date::GetStatic() << endl;
    33. return 0;
    34. }

  • 相关阅读:
    网易低代码引擎Tango正式开源
    【机器学习Python实战】logistic回归
    【AI】深度学习——前馈神经网络——卷积神经网络
    el-table 列背景色渐变
    线性DP例题
    如何设计一个低代码平台?
    Linux系统编程系列之线程属性
    Java实现HTTP的上传与下载
    【二叉树】最长同值路径
    大厂裁员只是开始,打工人如何避免焦虑,安身立命?
  • 原文地址:https://blog.csdn.net/Hello_World_213/article/details/126330234