另外,一个类有一个静态数据成员,那么该类的所有对象的这个数据成员都是拥有一块相同的内存吗?static数据成员的作用是什么? const数据成员的作用又是什么? 两者有什么特殊应用场合吗?

解决方案 »

  1.   

    static数据成员被编译器题出于class之外,在class生命范围内被视为一个global变量.
    每个static数据成员只有一个实体,放在程序的数据段之中.
    const一句画,就是Read Only.
      

  2.   

    static数据成员 它的生命周期实际上跟CLASS是脱离的.它并不存在CLASS空间中,是独立于包含它的类的.因此,你很容易理想,对于:
    CMouse 这样的类,CMouse mouse1,mouse2,mouse3;等等他们的static数据成员都是在同一个空间的(注意同一个空间!),当然它们的值也是一样的.
      

  3.   

    const数据成员 顾名思义,就是该类中的该数据类型的值是常量,不能改变,因此要注意的一个很重要的问题就是:
    不可以在类的构造函数中对该const 数据成员赋值!!!我们只能对const 数据类型进行初始化,而不是赋值!class CMouse
    {
    private:
       const int m_type;
    public:
       CMouse():m_type(1) { ; }
    };