c++静态成员与静态函数

1 静态成员的定义

1 静态变量

c++在类里面进行的仅是引用性声明,不会为之分配内存,要求必须单独对静态数据成员进行定义性的声明。形式为:

类型 类名::静态数据成员名;

此时的定义需要再加关键字static,并且可以在定义时初始化。

c++要求类中成员变量不可以直接初始化,可以采用定义函数方法时后挂变量方式初始化。

这与Java不同。

2 静态函数

定义方式与静态变量同。函数的定义可以在类内也可以在类外。

class A 
{
    public:
        A(int y)
        {
            a=y;
            cout<<a+x<<endl;    
        }
        //static int x;
        static void B(int z)
        {
            x=z;
            cout<<a<<"hehe"<<endl;
        }
    private:
        int a;
        static int x;
};

int A::x=1;
void A::B(int z);

int main()
{
    //A::x=2;
    A a1(2);
    a1.B(3);
    return 0;
}

 

2 访问限制说明

静态函数可以直接访问静态变量,但不可直接访问非静态成员,若要访问非静态成员,则必须借助于对象名或者指向对象的指针。

非静态函数可以直接访问静态变量和非静态变量。

这个特点与Java同。

posted @ 2015-12-19 21:51  小德cyj  阅读(778)  评论(0编辑  收藏  举报