【问题标题】:C:\Users\Joshua\Desktop\Game Projects\SFML projects\Test\Render.cpp|15|error: 'class std::vector<Character>' has no member named 'getSprite'|C:\Users\Joshua\Desktop\Game Projects\SFML projects\Test\Render.cpp|15|error: 'class std::vector<Character>' has no member named 'getSprite'|
【发布时间】:2014-08-27 14:37:03
【问题描述】:

我不断收到此错误

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

我正在尝试接受包含类型 Character 类的 pointersvector。包含正确的头文件,所以这不是问题。大约过去一个小时左右,我一直试图弄清楚这一点,但我完全迷失了。我以为我做得对。非常感谢您的帮助!

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();

}

【问题讨论】:

  • 您正在传递指向向量的指针。想想当您将operator[] 应用于指针时会发生什么。
  • 它试图访问或创建array of pointers?
  • 它将其视为向量数组。最好通过引用传递。
  • 你能给我一个代码示例吗?我有点困惑
  • std::vector&lt;something&gt;* yourvector 变为 std::vector&lt;something&gt;&amp; yourvector。你必须改变论点。您还必须更改函数才能使用实例而不是指针,即 foreground-&gt;size() 变为 foregroung.size()

标签: c++ sfml


【解决方案1】:

怎么样:

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();

}

【讨论】:

    猜你喜欢
    • 2016-05-14
    • 2019-06-13
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 2020-06-15
    • 2020-09-22
    • 2016-02-14
    • 2012-01-22
    相关资源
    最近更新 更多