我爱Aspx >> VC.Net >> 非窗口类中使用定时器的方法(一)在C语言中,声明一个数据为静态类型,意味着该变量的生存周期是静态的,即在程序的开始时即分配,到程序终止时才释放。但在C++中,声明一个类中的成员为静态类型,则意味着该类的所有实例只有该成员的一个拷贝。也就是说,不管应用程序中创建了这个类的多少个对象,其静态成员只有一个副本,该副本为这个类的所有对象实例所共享,而对于非静态成员,每个类对象实例都有自己的拷贝。例如:
class CPerson
{
public:
CString szName;
static CString szCompanyName;
CPerson();
virtual ~CPerson();
};
接着用该类声明一个实例 CPerson me;
对于同一家公司员工,每个人都有不同的姓名,但是他们的公司名字是一样的,所以就可以用一个静态类型来保存,这样所有的员工都共享这个公司名称,只要一位员工更新了公司名称,则所有员工的公司名称就被更新了。
静态成员被当作该类类型的全局对象,可以把一个静态数据成员和静态成员函数当成全局变量和函数那样去存储和访问,但又被隐藏在类的内部,并且清楚地与这个类相联系但又不是全局对象,同全局对象相比,使用静态成员有两个优势:
(1) 静态成员没有进入程序的全局名字空间,它属于类,它的名字只在类的范围内有效,因此不存在与程序中其他全局名字冲突的可能性。
(2) 可以实现信息隐藏,并可以保持类的完整性,可以是private(私有的)成员、public(公有的)成员或者protected(保护的)成员,而全局对象不能。
【我对这篇文章有话说?】
非窗口类中使用定时器的方法[05-21]
深度探索win32可执行文件格式[05-21]
const用法的体会[05-21]
一个典型的例子解决常见的高级Wi..[05-21]
由零开始做 Dialog (SDK版) — 在..[05-21]
C++机理:虚拟机制的实现[兼谈对..[05-21]
Effective STL: Item 44:优先使..[05-21]
跟随鼠标的几个星星,不是很夸张..[05-21]
时间编码[05-21]
深度解析MFC线程及机制[05-21]