美文网首页
13.静态成员

13.静态成员

作者: lxr_ | 来源:发表于2021-02-03 10:11 被阅读0次
    #include<iostream>
    using namespace std;
    
    //静态成员就是在成员变量和成员函数前加上关键字static,成为静态成员
    //静态成员变量:所有对象共享同一份数据
                  //在编译阶段分配内存
                  //类内声明,类外初始化
    //静态成员函数:***所有对象共享一个函数****
                 //****静态成员函数只能访问静态成员变量***
    
    class A
    {
    public:
        static int m_A;//类内声明
        int m_B;//非静态成员变量
        static void func()
        {
            m_A = 100;//静态成员函数可以访问静态成员变量
            //m_B = 13;//静态成员不可以访问非静态成员变量,因为静态函数可以通过类名直接访问,
            //不需要通过对象,故不能确定是哪个对象的非静态成员
            cout << "static void func调用" << endl;
    
            func2();//类内可访问静态成员变量
        }
        //静态成员函数也是有访问权限的
    private:
        static void func2()
        {
            cout << "static void func2函数调用" << endl;
        }
    };
    
    int A::m_A = 0;//*****类外初始化,若未在类外初始化,则会出错********
    
    void test10()
    {
        //1.通过对象访问
        A a;
        a.func();
       // a.m_A = 10;
    
        //2.通过类名访问
        A::func();
    
       // A::func2();类外不能访问私有静态成员函数
    }
    int main()
    {
        test10();
        system("pause");
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:13.静态成员

          本文链接:https://www.haomeiwen.com/subject/kiwhtltx.html