static

把一个类的成员说明为static时,那么用这个类定义的多个对象共享这个成员(修改是同步的)。

静态数据成员:

static的成员变量,在对象之前被创建。它可以被静态或是非静态成员函数访问。返过来,非静态成员变量,在静态成员函数中不可被访问。

class A
{
 public:
    
 private:
    static int a;
};

int A:: a = 0; //初始化
class A
{
 public:
    static int fun() //静态成员函数
    {
        int c = b;     
        /*
        在静态成员函数中访问非静态成员变量会出错。因为静态成员函数是多个对象共享的
        那么在静态成员函数中去引用非静态成员变量,那么编译器不能识别是哪个对象的成员函数。
        */
        return a;
    }
 private:
    static int a;    //静态成员变量
    int b;
};

那么静态成员函数能够访问的成员变量是什么呢——静态成员变量。

可以使用类名来调用的成员函数——静态成员函数。

A:: fun();

 

posted @ 2016-10-17 14:23  e-data  阅读(107)  评论(0)    收藏  举报