Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C:\Users\Joshua\Desktop\Game Projects\SFML Projects\Test\Render.cpp|15|error:';类std::vector<;性格>';没有名为'的成员;getSprite'|_C++_Sfml - Fatal编程技术网

C++ C:\Users\Joshua\Desktop\Game Projects\SFML Projects\Test\Render.cpp|15|error:';类std::vector<;性格>';没有名为'的成员;getSprite'|

C++ C:\Users\Joshua\Desktop\Game Projects\SFML Projects\Test\Render.cpp|15|error:';类std::vector<;性格>';没有名为'的成员;getSprite'|,c++,sfml,C++,Sfml,我一直在犯这个错误 C:\Users\Joshua\Desktop\Game Projects\SFML projects\Test\Render.cpp|21|error: 'class std::vector<Character>' has no member named 'getSprite'| 那么: void Render::draw(sf::RenderWindow* window, std::vector<Character>* foreground

我一直在犯这个错误

C:\Users\Joshua\Desktop\Game Projects\SFML projects\Test\Render.cpp|21|error: 'class std::vector<Character>' has no member named 'getSprite'|   
那么:

void Render::draw(sf::RenderWindow* window, std::vector<Character>* foreground, std::vector<Character>* background, std::vector<Character>* scenery)
{

window->clear();
for(int a = 0; a<scenery->size(); a++ )
{

    window->draw((*scenery)[a].getSprite());

}
for(int b = 0; b<background->size(); b++ )
{

    window->draw((*background)[b].getSprite());

}
for(int c = 0; c<foreground->size(); c++ )
{

    window->draw((*foreground)[c].getSprite());

}

window->display();

}
void Render::draw(sf::RenderWindow*窗口,std::vector*前景,std::vector*背景,std::vector*风景)
{
窗口->清除();
对于(int a=0;asize();a++)
{
窗口->绘制((*布景)[a].getSprite());
}
对于(int b=0;bsize();b++)
{
窗口->绘制((*background)[b].getSprite());
}
对于(int c=0;csiz();C++)
{
窗口->绘制((*前景)[c].getSprite());
}
窗口->显示();
}

您正在向向量传递指针。想象一下,当您将
运算符[]
应用于指针时会发生什么。它尝试访问或创建
指针的
数组
?它将其视为向量数组。最好通过参考传递。你能给我一个代码示例吗?我有点困惑
std::vector*yourvector
变成
std::vector&yourvector
。你必须改变论点。您还必须更改函数才能使用实例而不是指针,即
前台->大小()
变成
前台.size()
void Render::draw(sf::RenderWindow* window, std::vector<Character>* foreground, std::vector<Character>* background, std::vector<Character>* scenery)
{

window->clear();
for(int a = 0; a<scenery->size(); a++ )
{

    window->draw((*scenery)[a].getSprite());

}
for(int b = 0; b<background->size(); b++ )
{

    window->draw((*background)[b].getSprite());

}
for(int c = 0; c<foreground->size(); c++ )
{

    window->draw((*foreground)[c].getSprite());

}

window->display();

}