zoukankan      html  css  js  c++  java
  • c++ 静态成员

    静态成员变量

    #include <iostream>
    using namespace std;
    #include <string>
    
    class Person
    {
    public:
    
        static int m_A;//静态成员变量
    
        //静态成员变量特点:
        //1 在编译阶段分配内存
        //2 类内声明,类外初始化
        //3 所有对象共享一份数据
    
    private:
        static int m_B;//静态成员变量也是有访问权限的
    };
    int Person::m_A = 10;
    int Person::m_B = 10;
    
    void test01() 
    {
        //静态成员变量两种访问方式
    
        //1、通过对象
        Person p1;
        p1.m_A = 100;
        cout << "p1.m_A = " << p1.m_A << endl;
    
        Person p2;
        p2.m_A = 200;
        cout << "p1.m_A = " << p1.m_A << endl;//共享同一份数据
        cout << "p2.m_A = " << p2.m_A << endl;
    
        //2、通过类名
        cout << "m_A = " << Person::m_A << endl;
    
        //cout << "m_B = " << Person::m_B << endl; //私有权限访问不到
    }
    
    
    int main()
    {
        
        test01();
    
        system("pause");
        return 0;
    
    }

    静态成员函数

    #include <iostream>
    using namespace std;
    #include <string>
    
    class Person
    {
    public:
    
        //静态成员函数特点:
        //1、程序共享一个函数
        //2、静态成员函数只能访问静态成员变量
    
        static void func()
        {
            cout << "func调用" << endl;
            m_A = 100;
            //m_B = 100;//错误,不可以访问非静态成员变量
        }
        static int m_A;//静态成员变量
        int m_B;
    
    private:
    
        //静态成员函数也是有访问权限的
        static void func2()
        {
            cout << "func调用" << endl;
        }
    };
    
    int Person::m_A = 10;
    
    void test01()
    {
        //静态成员变量两种访问方式
    
        //1、通过对象
        Person p1;
        p1.func();
    
        //2、通过类名
        Person::func();
    
    
        //Person::func2(); //私有权限访问不到
    }
    
    int main()
    {
        
        test01();
    
        system("pause");
        return 0;
    
    }
  • 相关阅读:
    10003 Cutting Sticks(区间dp)
    Cocos2d-x init() 和 onEnter() 区别
    HDU1181【有向图的传递闭包】
    空间参考系统与WKT解析
    面试经典-分金条
    uvalive 3971
    lua学习:使用Lua处理游戏数据
    面试经典--两个房间 每间房间三盏灯
    浙江大学PAT上机题解析之2-11. 两个有序链表序列的合并
    顺序队列之C++实现
  • 原文地址:https://www.cnblogs.com/keepma/p/15555607.html
Copyright © 2011-2022 走看看