静态成员变量不专属于某个对象,他属于整个类中所有对象的成员变量,在实例化一个对象的时候可能无法给它开辟内存,因此我们需要在全局为他开辟内存。
[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<
//可以直接用类名去访问静态成员变量
cout<
}
静态成员函数不能访问普通成员变量以及普通成员函数,但是可以访问静态成员变量和静态成员函数。因为静态成员函数是属于整个类的,所以他不能访问某个对象的 成员
变量,因为它没有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<
//需要讲GetCount变成static才能被Show访问
cout<
private:
int key;
static int count;
};
int A::count=10;
int main()
{
A::Show();
A a(5);
cout<
cout<
}