Chinaunix首页 | 论坛 | 博客
  • 博客访问: 159802
  • 博文数量: 30
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 290
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-25 19:05
文章分类

全部博文(30)

文章存档

2009年(3)

2008年(27)

我的朋友

分类: C/C++

2008-12-06 20:13:02

    静态成员变量在一个类的所有实例中是共享的。它们是全局数据和成员数据之间的折中。
    可以把一个静态成员看作是属于类的,而不是属于对象的。通常的成员数据是每个对象一个,而静态成员数据是每个类一个。
    静态成员函数像静态成员变量一样:它们不是存在于某个对象中,而是存在于这个类的作用域之内。这样,可以在没有那个类的对象的情况下调用它们。
 
    下面的程序声明了一个带有静态成员变量catNum和静态成员函数CatNum的Cat对象。这个变量记录创建了多少个Cat对象。
 

#include<iostream>
using namespace std;
class Cat{
public:
 Cat(){catNum++;};
 virtual ~Cat(){catNum--;}
 static int CatNum(){return catNum;}
private:
 static int catNum;
};
int Cat::catNum=0;
int main(){
 Cat* p[5];
 
 for (int i=0;i<5;i++){
  p[i]=new Cat;
  cout<<Cat::CatNum()<<endl;
 }
 cout<<endl;
 for (i=0;i<5;i++){
  delete p[i];
  cout<<Cat::CatNum()<<endl;
 }
 return 0;
}

阅读(841) | 评论(0) | 转发(0) |
0

上一篇:虚继承

下一篇:ORACLE中添加删除主键

给主人留下些什么吧!~~