静态的成员函数,同静态数据成员类似,它也是属于类,而不是属于某一个对象的。
静态成员函数不能访问非静态的数据成员,它只能访问静态数据成员,也只能调用其它的静态成员函数。原因是:当前对象的地址(this)是被隐含地传递到被调用的函数的。但一个静态成员函数没有this指针,所以它无法访问非静态的成员函数。
由于静态成员函数是属于类的,所以,静态成员函数的调用方法为:
类名::静态成员函数名();
以下关于静态成员变量
1.初始化static成员变量不能安排在类的构造函数中,因为构造函数可能一再被调用,而变量的初值却只应该设定一次。也不要把初始化安排在头文件中,因为它可能会被包含在许多地方。而应该放在main函数之中,或全域函数中,或者任何函数之外。
//=====================================
对于多个的C/C++头文件的包含,一般情况下放在工程的目录下编译器就可以正确地找到。 但是对于在不同文件夹下的头文件的包含,当然可以写完整的路径,但是这样有可能会出现将工程拷到别人的机子上运行不了的问题。如果在这个程里同写上相对的路径,那么不仅在自己的机子上能运行,别人拷了过去也能正确运行。
例如我的一个工程头文件如下:
c:/F/Work/test/testnow/testPage.h
上面的头文件要包含的文件如下:
c:/F/Work/test/testnow/FileHelpers/FileInformationList.h
c:/F/Work/test/testnowTray/testTray/Share.h
那么可以在testPage.h上这样写:
[cpp] view plaincopy
#include "./FileHelpers/FileInformationList.h"
#include "../testnowTray/testTray/Share.h"
上面
#include "./FileHelpers/FileInformationList.h"
的一点表示当前目录(这些的标记对于接触过DOS的人来说一定不会陌生吧?)。
#include "../testnowTray/testTray/Share.h"
的两点表示上一级目录。
其他的照这样类推。 这样是不是方便了一点???