WEB开发网
开发学院软件开发VC 非窗口类中使用定时器的方法及相关知识的介绍 阅读

非窗口类中使用定时器的方法及相关知识的介绍

 2006-07-20 11:38:11 来源:WEB开发网   
核心提示: <数据类型><类名>::<静态数据成员名>=<值>对于上面的例子这样初始化:CString CPerson::szCommpanyName = "网进科技";这表明:(1) 初始化在类体外进行,而前面不加static,非窗

<数据类型><类名>::<静态数据成员名>=<值>

对于上面的例子这样初始化:

CString CPerson::szCommpanyName = "网进科技";

这表明:

(1) 初始化在类体外进行,而前面不加static,以免与一般静态变量或对象相混淆。

(2) 初始化时不加该成员的访问权限控制符private,public等。

(3) 初始化时使用作用域运算符来标明它所属类,因此,静态数据成员是类的成员,而不是对象的成员。

在类的成员函数中可以直接引用该类的静态数据成员,而不必使用成员访问操作符。但是在非成员函数中,我们必须一两种方式之一访问静态数据成员。

(1) 使用成员访问操作符。

例如:me是CPerson的一个实例,在非成员函数中可以这样应用其中的静态数据成员:

CString TheCommpanyName = me.CommpanyName;

(2) 因为类静态数据成员只有一个拷贝,所以它不一定要通过对象或者指针来访问。方法二就是用被类名限定修饰的名字直接访问它。当我们不通过类的成员访问操作符访问静态数据成员时,必须指定类名以及紧跟其后的域操作符,因为静态成员不是全局对象,所以我们不能在全局域中找到它。如:

CString TheCommpanyName = CPerson::CommpanyName;

顺便说一句静态数据成员还有两个特点:

(1) 静态数据成员的类型可以是其所属类,而非静态数据成员只能被声明为该类的对象的指针或引用。

(2) 静态数据成员可以被作为类成员函数的缺省实参,而非静态成员不能。

2.2.2 静态成员函数

静态成员函数的声明与普通函数的唯一区别就是在前面加一个static。

通常,当前对象的地址(this)是被隐含地传递到被调用的非静态成员函数的。静态成员函数具有类的范围,同非静态成员函数相比,静态成员函数没有this参数,因此它不能访问一般的数据成员,而只能访问静态数据成员、枚举或嵌套类型和其他的静态成员函数。这样使用静态成员函数在速度上可以比全局函数有少许的增长,它不仅没有传递this指针所需的额外的花费,而且还有使函数在类内的好处。如果静态成员函数中要引用非静态成员时,可通过对象来引用。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:窗口 使用 定时器

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接