• 类的静态成员变量的声明与初始化问题总结


    类的静态成员变量的声明与初始化问题总结

    1. 类的静态成员变量的声明原则:

      在.H文件中,用static 关键字进行前缀修饰即可,不可以直接进行初始化,基础变量除外。

      如果要初始化自定义的类型,则需要在CPP文件中进行初始化

      static CPerson* Police;

     1 //定义状态环境类
     2 /*
     3 环境状态类:
     4 1. 封装状态静态常量
     5 2. 聚合状态
     6 3. 提供上层接口
     7 */
     8 class CStateContex : public CIState
     9 {
    10 public:
    11     CStateContex(CAbsState* pState = nullptr)
    12     {
    13         if (!pState)
    14             pState = _STATE_OPEN_;//默认门打开状态
    15         m_pState = pState;//无默认值行为
    16     }
    17     ~CStateContex()
    18     {
    19         //类的静态成员的堆分配是和类一起进行销毁的
    20     }
    21 public:
    22     void openDoor() override
    23     {
    24         cout << "...不响应..." << endl;
    25     }
    26     void closeDoor() override
    27     {
    28         cout << "...不响应..." << endl;
    29     }
    30     void moveRunning() override
    31     {
    32         cout << "...不响应..." << endl;
    33     }
    34     void stopRunning() override
    35     {
    36         cout << "...不响应..." << endl;
    37     }
    38     CAbsState* getState()
    39     {
    40         return m_pState;
    41     }
    42     //修改当前状态的,要更新被修改状态当前的环境对象,因为环境类中的状态对象中的环境属性需要及时更新
    43     void setState(CAbsState* p)
    44     {
    45         m_pState = p;
    46         m_pState->setContex(this);
    47     }
    48 public:
    49     static CAbsState* _STATE_OPEN_;
    50     static CAbsState* _STATE_CLOSE;
    51     static CAbsState* _STATE_RUN;
    52     static CAbsState* _STATE_STOP;
    53 private:
    54     CAbsState* m_pState;
    55 
    56 };

    2.类的静态成员变量初始化原则:

      在CPP文件中进行初始化,且格式如下:

      类型 所在类::静态变量名 = 初始化值。

    1 #include "StateDef.h"
    2 
    3 //类的静态成员的初始化,不能再类的声明中进行
    4 CAbsState* CStateContex::_STATE_OPEN_ = new CStateOpenning();
    5 CAbsState* CStateContex::_STATE_CLOSE = new CStateClosing();
    6 CAbsState* CStateContex::_STATE_RUN = new CStateRunning();
    7 CAbsState* CStateContex::_STATE_STOP = new CStateStopping();
  • 相关阅读:
    java 执行 jar 包中的 main 方法
    seven habits of highly effective people 高效能人士的七个习惯
    支付系统对账算法优化方案 转
    iso 培训笔记
    Android日常开发总结的技术经验60条 转
    ANDROID学习之路 转
    Businessworks的设计思想
    JVM内存模型和性能优化 转
    高可用架构设计与实践
    大规模分布式存储实战
  • 原文地址:https://www.cnblogs.com/icmzn/p/5668862.html
Copyright © 2020-2023  润新知