维持该类所有对象的共同信息。
所有的对象都共用这个static,节省了内存。
static是全局。

解决方案 »

  1.   

    static我知道他是属于类而不属于对象~可是好处呢?
      

  2.   

    同一个类派生出来的对象可以互相通信。就像有些兄弟姐妹之间有心灵感应一样。比如下面代码:#include <stdio.h>class cshape 
    {
    public:
        static cshape* instance();
    void release(void){
    delete this;
    count--;
    };
    protected:
        cshape(){;};
    private:
        static int count;};int cshape::count = 0;cshape* cshape::instance()
    {
        cshape* pshape = 0;
        if(count < 2){
            pshape = new cshape;
            count ++;
        }
        return pshape;
    }int main(int argc, char* argv[])
    {
    cshape* pshape1 = cshape::instance();
    cshape* pshape2 = cshape::instance();
    cshape* pshape3 = cshape::instance();
    if(pshape1) pshape1->release();
    if(pshape2) pshape2->release();
    if(pshape3) pshape3->release(); return 0;
    }限制了cshape对象的个数。就像计划生育一样,呵呵。还有singleton模式,真正的只准生一胎。参阅《设计模式》3.5节.
      

  3.   

    当你有一个类的所有实例都要使用的信息就要用static,比如,实例计数器。
      

  4.   

    如果一个变量或函数声明为 static 的话,这个变量(函数)在程序启动时就会被分配了空间,并一直到程序结束才消亡。如果在类中一个成员被声明成务static类型的话,那么也就表明这个成员在程序中只存在一份拷贝,这个类的所有实例都共享同一份数据。实际上,static的实现是在程序的编译期间,在程序的data segment 中只保存一个static data member的实体,每次程序调用static member时,都是对该外部实体的直接操作。