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

  • 相关阅读:
    电脑Adobe PDF安装时出现未找到IMSLib提示怎么处理
    手机链接电脑后总是自动打开手机文件夹。
    06月15日总结
    06月11日总结
    06月20日总结
    06月16日总结
    06月18日总结
    06月12日总结
    06月14日总结
    06月13日总结
  • 原文地址:https://www.cnblogs.com/buptmemory/p/2915894.html
Copyright © 2020-2023  润新知