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;},也可以用非静态成员函数访问,用对象调用此成员函数。

  • 相关阅读:
    java泛型
    跨域传递
    laravel的一些语法
    去重
    laravel的一些查询语句
    mysql把之前表单进行拆分
    Laravel5.1接收json数据
    thinkphp5 composer安装验证码
    关于地图经纬度的问题
    tp5分组查询
  • 原文地址:https://www.cnblogs.com/buptmemory/p/2915894.html
Copyright © 2011-2022 走看看