2010-12-06 33 views
21

tengo una clase, digamos que CAppPath que tiene un método estático:Como llamar a un método estático de otra clase

public: 
    static CString GetAppPath(); 

y en CAppPath.cpp se define como:

CString CAppPath::GetAppPath() 
{ 

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

Ahora tengo otra clase CXMLHandler, y he incluido CAppPath.h en ella. ¿Pero cómo llamo al método GetAppPath()? Lo he intentado:

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

pero no funciona. ¿Cómo debo acceder a este método? Como es un método estático, ¿necesito crear un objeto de la clase o debo hacer que la clase en sí sea estática?

Respuesta

59

Sólo tiene que utilizar el scope resolution operator:: para calificar el método con el nombre de la clase que expone que:

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

Gracias, En ese caso, ¿Es necesario el método estático? – Simsons

+4

@Subhen, sí, lo haces. Si el método no es estático, deberá crear una nueva instancia de la clase 'CAppPath' para llamar al método' GetAppPath() 'en esa instancia. –

Cuestiones relacionadas