我对C ++并不过分称职,这个编译器错误对我来说毫无意义。以下行调用标题中显示的编译器错误:
m_SunTexture = LudoTextureManager::GetInstance()->GetTextureData(hardcoded.c_str()).m_Texture;
其中m_SunTexture在我的头文件中定义为
IDirect3DTexture9 *m_SunTexture;
在我的头文件的私有部分。为什么是这样!这对我来说毫无意义。
根据要求,这里有更多代码。在此函数中调用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.
}
DrawSun在头文件中定义为:
static void DrawSun();
在我的头文件的公共部分下。
答案 0 :(得分:5)
我猜第一行代码是静态函数,它指的是非静态成员“m_SunTexture”。
有关详细信息,请参阅this。本质上,静态函数没有“this”指针,因此引用非静态成员(属于该类的每个实例)没有任何意义。