什麼是靜態類?
靜態類不用產生類執行個體即可用來訪問其功能函數,當我們不需要成員資料或根據對象變化的行為,就可以使用這樣的靜態類。
如何在Symbian中產生靜態類?
我們不需要描述類時加上static首碼,只要在所有的函數前面加上static首碼即可。你不需要描述和實現構造及解構函式,因為根本不需要對象實體
標頭檔
// MyStatic.h.
/** No Need to derive from CBase as this class will never be instantiated over heap**/
class MyStaticClass
{
public: //all function must be public else no one can able to access it.
static void OpenOtherApplication(const TDesC& aUrl);
static HBufC8* ReadFromFile(RFs& aFs, const TDesC& aRootPath, const TDesC& aFileName);
static TInt StartExe(const TDesC& aUID);
private:
/** Make Desctructor Pure Virtual so that the class cannot be instantiated or inherited**/
virtual ~MyStaticClass()=0;
};
源檔案
//MyStatic.cpp implementation
void MyStaticClass::OpenOtherApplication(const TDesC& aAppName)
{
//do your work here.
}
HBufC8* MyStaticClass::ReadFromFile(RFs& aFs, const TDesC& aRootPath, const TDesC& aFileName)
{
//do your work here.
}
TBool MyStaticClass::StartExe(const TDesC& aUID)
{
//do your work here.
}
如何使用靜態類?
Include MyStatic.h in your class. then directly use as follows
TInt error = MyStaticClass::StartExe(0xea3e3e10); //no need to create instance here.