我有一个具有此功能的课程:
void Render(SDL_Surface *source,SDL_Surface *destination,string img)
{
SDL_Rect offset;
offset.x = m_x;
offset.y = m_y;
source = IMG_Load(img);
offset.w = source->w;
offset.h = source->h;
}
出于某种原因,即使头文件顶部有include <string>
,也不允许这样做。我明白了:
Identifier, "string" is undefined.
我在我的主文件中传递这样的数据:
btn_quit.Render(menu,screen,"button.png");
当我执行时,我得到:
'Button::Render' : function does not take 3 arguments
但是这个网站说string
是数据类型的正确语法(在底部):http://www.cplusplus.com/doc/tutorial/variables/
有人可以解释我做错了吗?
答案 0 :(得分:3)
我建议您将渲染功能更改为:
void Render(SDL_Surface *source,SDL_Surface *destination,const std::string& img)
{
SDL_Rect offset;
offset.x = m_x;
offset.y = m_y;
source = IMG_Load(img.c_str());
offset.w = source->w;
offset.h = source->h;
}