非静态成员'Sun :: m_SunTexture'的非法引用

3 c++ compiler-errors

我对C++并不是很称职,这个编译器错误对我来说没什么意义.以下行调用标题中显示的编译器错误:

m_SunTexture = LudoTextureManager::GetInstance()->GetTextureData(hardcoded.c_str()).m_Texture;
Run Code Online (Sandbox Code Playgroud)

其中m_SunTexture在我的头文件中定义为

IDirect3DTexture9 *m_SunTexture;
Run Code Online (Sandbox Code Playgroud)

在我的头文件的私有部分.为什么是这样!这对我来说毫无意义.

根据要求,这里有更多代码.在此函数中调用m_SunTexture

void Sun::DrawSun()
{
    std::wstring hardcoded = L"..\\Data\\sun.jpg";
    m_SunTexture = LudoTextureManager::GetInstance()->GetTextureData(hardcoded.c_str()).m_Texture;
    //more code here, cut off because it's useless for this.
}
Run Code Online (Sandbox Code Playgroud)

DrawSun在头文件中定义为:

static void DrawSun();
Run Code Online (Sandbox Code Playgroud)

在我的头文件的公共部分下.

Jus*_*cle 5

我猜测第一行代码是静态函数,它指的是非静态成员"m_SunTexture".

有关更多信息,请参阅本质上,静态函数没有"this"指针,因此引用非静态成员(属于该类的每个实例)没有任何意义.