2010-12-06 9 views
21

Ich habe eine Klasse eine statische Methode einer anderen Klasse aufrufen, lässt CAppPath sagen, die eine statische Methode hat:Wie kann ich

public: 
    static CString GetAppPath(); 

und in CAppPath.cpp es wie folgt definiert:

CString CAppPath::GetAppPath() 
{ 

    return "C:\..\MypAth"; 
} 

I Now habe eine andere Klasse CXMLHandler, und ich habe CAppPath.h darin enthalten. Aber wie rufe ich die GetAppPath() Methode? Ich habe versucht:

#include "CAppPath.h" 
void CXMLHandler::MyMethod 
{ 
CNDSClientDlg->GetAppPath(); 
} 

aber es funktioniert nicht. Wie soll ich auf diese Methode zugreifen? Da es eine statische Methode ist, muss ich ein Objekt der Klasse erstellen oder sollte ich die Klasse selbst statisch machen?

Antwort

59

Sie nur die scope resolution operator:: zu qualifizieren, um die Methode mit dem Namen der Klasse verwenden müssen, die es bereitstellt:

CString appPath = CAppPath::GetAppPath(); 
+0

Danke, In diesem Fall kann ich die Methode als statische müssen? – Simsons

+4

@Subhen, ja, das tust du. Wenn die Methode nicht statisch ist, müssen Sie eine neue Instanz der CAppPath-Klasse erstellen, um die Methode "GetAppPath()" für diese Instanz aufzurufen. –