您的位置:首页 > 其它

静态成员变量和静态成员函数

2012-07-31 21:52 239 查看
我们学到的类对象的成员变量一般都是这个对象专属,不能为其他对象所共有。然而在实际编程中我们需要统计对象的数量等问题,所以就必须设置一个类的对象所共有的变量,就是静态成员变量。

首先通过一个简单的例程 说明静态成员如何使用。

#include<iostream>
using namespace std;
class A
{
public:

A(int num): it(num)
{

total++;
}
virtual ~A()
{
total--;
}

virtual int get()
{

return it;
}

virtual void set(int age)
{
it = age;

}

static int total;
private:
int it;

};

int A::total = 0;

int main()
{

const int max = 5;
int i;
A *a[max];
for(i = 0; i< max;i++)
a[i] = new A(i);

for(i = 0; i< max; i++)
{

cout<<"该类有"<<A::total<<"个对象"<<endl;
cout<<"正在删除第"<<a[i]->get()<<"个对象。\n";
delete a[i];
}
return 0;
}


程序执行的结果是:



1、静态成员变量必须属于类的成员变量,不属于单个对象。

2、静态成员变量必须在全局定义。

3、静态成员变量的使用方式:

A::total;

4、静态成员变量在对象存在之前就存在着。

静态成员函数和静态成员变量一样,不属于任何一个对象。

用一个程序来说明如使用静态成员函数。

#include<iostream>
using namespace std;
class A
{

public:
void static show()
{

cout<<A::n;
n++;
}

private:
static int n;
};
int A::n = 0;

int main()
{
int i;
for(i =0; i< 5; i++)
{

A::show();
cout<<endl;
}

return 0;
}


程序执行的结果是:



注意:

1、由于静态成员函数是属于整个类的,所以不能访问某个对象的成员变量。因为它没有指向对象的this指针。

2、静态成员函数不能说明为虚函数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: