成员变量的回顾
通过对象名能够访问public成员变量
每个对象的成员变量都是专属的
成员变量不能在对象之间共享
#include <stdio.h>
class Test
{
private:
int mCount;
public:
Test():mCount(0)
{
mCount ++;
}
~Test()
{
--mCount;
}
int getCount()
{
return mCount;
}
};
Test GTest;
int main()
{
Test t1;
Test t2;
printf("count = %d\n",GTest.getCount());
printf("count = %d\n",t1.getCount());
printf("count = %d\n",t2.getCount());
return 0;
}
输出:
count = 1
count = 1
count = 1
静态成员变量
在C++中可以定义静态成员变量
静态成员变量属于整个类所有
静态成员变量的生命期不依赖与任何对象
可以通过类名直接访问公有静态成员变量
所有对象共享类的静态成员变量
可以通过对象名访问公有静态成员变量
静态成员变量的特性
在定义时直接通过static关键字修饰
静态成员变量需要在类外单独分配空间
静态成员变量在程序内部位于全局数据区
例:
#include <stdio.h>
class Test
{
private:
static int mCount;
public:
Test()
{
mCount ++;
}
~Test()
{
--mCount;
}
int getCount()
{
return mCount;
}
};
int Test::mCount = 00;
Test GTest;
int main()
{
Test t1;
Test t2;
printf("count = %d\n",GTest.getCount());
printf("count = %d\n",t1.getCount());
printf("count = %d\n",t2.getCount());
return 0;
}
输出结果:
count = 3
count = 3
count = 3
例:
#include <stdio.h>
class Test
{
private:
static int mCount;
public:
Test()
{
mCount ++;
}
~Test()
{
-- mCount;
printf("runing\n");
}
int getCount()
{
return mCount;
}
};
int Test::mCount = 00;
Test GTest;
int main()
{
Test t1;
Test t2;
printf("count = %d\n",GTest.getCount());
printf("count = %d\n",t1.getCount());
printf("count = %d\n",t2.getCount());
Test* pt = new Test();
printf("count = %d\n",pt->getCount());
delete pt;
printf("count = %d\n",GTest.getCount());
return 0;
}
输出:
count = 3
count = 3
count = 3
count = 4
runing
count = 3
runing
runing
runing
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。