如何调用另一个类的静态方法

Sim*_*ons 41 c++ windows oop mfc static-methods

我有一个类,让我们说CAppPath有一个静态方法:

public:
    static CString GetAppPath();
Run Code Online (Sandbox Code Playgroud)

并在CAppPath.cpp其中定义为:

CString CAppPath::GetAppPath()
{

    return "C:\..\MypAth";
}
Run Code Online (Sandbox Code Playgroud)

现在我有另一个班CXMLHandler,我已经加入CAppPath.h了.但是我如何调用该GetAppPath()方法?我试过了:

#include "CAppPath.h"
void CXMLHandler::MyMethod
{
CNDSClientDlg->GetAppPath();
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我应该如何访问此方法?由于它是一个静态方法,我是否需要创建该类的对象,还是应该使该类本身是静态的?

Fré*_*idi 86

您只需要使用范围解析运算符 来使用::公开它的类的名称限定方法:

CString appPath = CAppPath::GetAppPath();
Run Code Online (Sandbox Code Playgroud)

  • @Subhen,是的,你这样做.如果该方法不是静态的,则必须创建一个新的`CAppPath`类实例,以便在该实例上调用`GetAppPath()`方法. (5认同)