zoukankan      html  css  js  c++  java
  • static成员函数、成员变量

    class Cat
    {
    public:
             Cat(int age):itsAge(age){HowManyCats++;}
             virtual ~Cat(){HowManyCats--;}
             virtual int getAge(){return itsAge;}
             virtual void setAge(int age){itsAge=age;};
             static int HowManyCats;
    private:
             int itsAge;
    };
    // int Cat::HowManyCats=0; //对静态成员数据如此赋值
    int main()
    {
     
             const int maxCats =5;
             int i;
             Cat *catHouse[maxCats];
     
             for(i=0; i<maxCats; i++)
                       catHouse[i]=new Cat(i);
             for(i=0; i<=maxCats; i++)
             {
                       cout<<"there are "<<Cat::HowManyCats<<" cats left.\n";
                       if(!Cat::HowManyCats) break;
     
                       cout<<"delete the cat which is "<<catHouse[i]->getAge()<<" years old."<<endl;
                       delete catHouse[i];
                       catHouse[i] = 0;
             }
             return 0;
    }

    上面程序的错误是定义了静态数据成员,但没有为之赋值!

    对于私有静态数据成员:private:         static int HowManyCats;

    可以用公有的静态成员函数访问:public: static int GetHowMany(){return HowManyCats;},也可以用非静态成员函数访问,用对象调用此成员函数。

  • 相关阅读:
    【linux】which和whereis
    【linux】locate介绍
    【linux】find命令详解
    【linux】umask
    【linux】文件目录说明
    【linux】Linux系统信息查看命令大全
    【linux】mkdir -p命令
    【linux】head&&tail
    【linux】less &&more
    【linux】ls常用参数
  • 原文地址:https://www.cnblogs.com/buptmemory/p/2915894.html
Copyright © 2011-2022 走看看