无法将字符串传递给我的类函数

时间:2012-11-04 05:47:17

标签: c++ sdl

我有一个具有此功能的课程:

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/

有人可以解释我做错了吗?

1 个答案:

答案 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;    
}
  1. 使用std :: string而不是string
  2. 传递img引用而不是传递值
  3. 从IMG_Load(img)更改;到IMG_Load(img.c_str());