编程语言
首页 > 编程语言> > C++静态成员

C++静态成员

作者:互联网

静态成员:在成员变量和成员函数前加上关键字static。

静态成员分为:

静态成员变量:

1.在编译阶段分配内存。

2.类内声明,类外初始化。

3.所有对象共享同一份数据。

静态成员函数:

1.所有对象共享同一个函数。

2.静态成员函数只能访问静态成员变量。

静态变量的两种访问方式:

1.通过对象。

2.通过类名。

#include<iostream>
using namespace std;
class WLM
{
public:
    static int m_a;

private:
    static int m_b;
};
int WLM::m_a = 10;
int WLM::m_b = 20;

class ZJY
{
public:
    static void func()
    {
        cout << "func调用" << endl;
        m_a = 100;    //静态成员函数只能访问静态成员变量
        //m_b = 100;    错误
    }
    static int m_a;
    int m_b;

private:
    static void func2()
    {
    }
};
int ZJY::m_a = 10;

void test1()
{
    //静态成员变量两种访问方式
    //1.通过对象
    WLM wlm1;
    wlm1.m_a = 100;    
    cout << "wlm1.m_a = " << wlm1.m_a << endl;

    WLM wlm2;
    wlm2.m_a = 200;
    cout << "wlm1.m_a = " << wlm1.m_a << endl;    //所有静态成员变量共享同一份数据
    cout << "wlm2.m_a = " << wlm2.m_a << endl;

    //2.通过类名
    cout << "m_a = " << WLM::m_a << endl;
    //cout << "m_b" << WLM::m_b << endl;    静态成员变量也有访问权限
}

void test2()
{
    //静态成员变量两种访问方式
    //1.通过对象
    ZJY zjy;
    zjy.func();

    //2.通过类名
    ZJY::func();
    //ZJY::func2();    //错误,静态成员函数也有访问权限
}

int _tmain(int argc, _TCHAR* argv[])
{
    test1();
    test2();

    system("pause");
    return 0;
}

标签:变量,静态,成员,C++,int,static,WLM
来源: https://www.cnblogs.com/ZJY-WLM/p/16527667.html