非窗口类中使用定时器的方法及相关知识的介绍
2006-07-20 11:38:11 来源:WEB开发网核心提示: class CPerson{public:CString szName;static CString szCompanyName;CPerson();virtual ~CPerson();};接着用该类声明一个实例 CPerson me;对于同一家公司员工,每个人都有不同的姓名,非窗口类中
class CPerson
{
public:
CString szName;
static CString szCompanyName;
CPerson();
virtual ~CPerson();
};
接着用该类声明一个实例 CPerson me;
对于同一家公司员工,每个人都有不同的姓名,但是他们的公司名字是一样的,所以就可以用一个静态类型来保存,这样所有的员工都共享这个公司名称,只要一位员工更新了公司名称,则所有员工的公司名称就被更新了。
静态成员被当作该类类型的全局对象,可以把一个静态数据成员和静态成员函数当成全局变量和函数那样去存储和访问,但又被隐藏在类的内部,并且清楚地与这个类相联系但又不是全局对象,同全局对象相比,使用静态成员有两个优势:
(1) 静态成员没有进入程序的全局名字空间,它属于类,它的名字只在类的范围内有效,因此不存在与程序中其他全局名字冲突的可能性。
(2) 可以实现信息隐藏,并可以保持类的完整性,可以是private(私有的)成员、public(公有的)成员或者protected(保护的)成员,而全局对象不能。
2.2.1 静态数据成员
使用静态数据成员可以节省内存,因为它是所有对象所公有的,因此,对多个对象来说,静态数据成员只存储一处,供所有对象共用。静态数据成员的值对每个对象都是一样,但它的值是可以更新的。只要对静态数据成员的值更新一次,就可以保证所有对象都能够访问到被更新后的值,这样可以提高效率和节省内存空间。
在类中将一个成员变量声明为静态的,与声明普通变量的唯一区别就是在其定义前加一个static。
象上面的例子中那样声明:
static CString szCompanyName;
静态数据成员显式初始化与一般数据成员初始化不同。静态数据成员显式初始化的格式如下:
更多精彩
赞助商链接