zoukankan      html  css  js  c++  java
  • 静态成员函数中不允许引用类的非静态成员,但可以访问对象中的非静态成员

    代码如下:

    #include<iosteam>

    class M
    {
    public:
    M(int a)
    {
    A = a;
    B+=a;//这里每调用一次构造函数不就重新刷新一次B了吗?用这种方法记录生成对象的个数??
    }


    static void f1(M m);

    private:
    int A;
    static int B;

    };

    void M::f1(M m)
    {
    cout<<"A="<<m.A;//在静态成员函数中,只能通过对象访问类的非静态成员
    cout<<"B="<<B;//B是静态成员,可以在静态成员函数中访问

    }

    int M::B=0;//一直不明白这里的B不是私有的吗?为什么可以直接访问?是因为这句话没有在任何函数中吗?

    void main()
    {
    M P(5), Q(10);
    M::f1(P);
    //访问静态成员函数,前面可以用类名或者对象名,下同
    M::f1(Q);

    }



  • 相关阅读:
    第二章.md
    第四章.md
    第一章.md
    第九章.md
    png简析.md
    第五章.md
    好看的粒子效果
    缓动 减速运动
    收集的小效果
    粒子效果2
  • 原文地址:https://www.cnblogs.com/carbs/p/2432029.html
Copyright © 2011-2022 走看看