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

2014-11-24 10:39:58 · 作者: · 浏览: 0

静态成员变量不专属于某个对象,他属于整个类中所有对象的成员变量,在实例化一个对象的时候可能无法给它开辟内存,因此我们需要在全局为他开辟内存。


[cpp]
#include
using namespace std;
class A
{
public:
static int count;
A(int i):key(i)
{
count++;
cout<<"构造函数!"< }
~A()
{
count--;
cout<<"析构函数!"< }
int Getkey()
{
return key;
}
int GetCount()
{
return count;
}
private:
int key;
};
int A::count=0;
int main()
{ www.2cto.com
A a(5);
cout< A b(6);
//可以直接用类名去访问静态成员变量
cout< cout< return 0;
}

静态成员函数不能访问普通成员变量以及普通成员函数,但是可以访问静态成员变量和静态成员函数。因为静态成员函数是属于整个类的,所以他不能访问某个对象的 成员
变量,因为它没有this指针,但是他可以访问静态成员函数和静态成员变量。
[cpp]
#include
using namespace std;
class A
{
public:

A(int i):key(i)
{
count++;
cout<<"构造函数!"< }
~A()
{
count--;
cout<<"析构函数!"< }
int Getkey()
{
return key;
}
static int GetCount()
{
return count;
}
static void Show()
{
cout< count++;
//需要讲GetCount变成static才能被Show访问
cout< }
private:
int key;
static int count;
};
int A::count=10;
int main()
{
A::Show();
A a(5);
cout< A b(6);

cout< return 0;
}