使用向量push_back时没有匹配的函数调用

时间:2016-02-09 03:01:46

标签: c++ vector graphics sfml

我使用SFML及其Vector2f以及普通的c ++矢量。

我正在使用一个名为projectiles的类,其中是一个默认构造函数和

<html>
<body>
<form method='POST'>
<table>
<tr>
<td>Enter the JSON:</td>
<td>
<textarea name="json_input" cols="80" rows="30">
</textarea>
</td>
</tr>
<tr><td colspan='2'><input type='Submit' value='submit'></td></tr>
</table>
</form>
</body>
</html>

来自main的呼叫以

的形式出现
///////////////////////////////////
//   Construct with position and velocities
//////////////////////////////////
projectile::projectile(const sf::Vector2f itsPosition, const sf::Vector2f itsVel):
position(itsPosition),
vel(itsVel)
{}

导致错误

if (sf::Mouse::isButtonPressed(sf::Mouse::Left))
    {
        projectiles.push_back(sf::Vector2f(rectPos), sf::Vector2f(10,10));
    }

我需要让它使用默认构造函数进行初始化,然后编辑之后或者是否有一些简单的我在这里缺失

1 个答案:

答案 0 :(得分:1)

您的问题是您将两个参数传递给push_back方法,该方法定义为只接受一个参数。对于具有多个参数的函数,实际上没有定义,因此编译器抱怨您正在寻找不存在的方法。资料来源:(http://www.cplusplus.com/reference/vector/vector/push_back/

你真正需要做的是构建一个新的射弹,然后将其传回去。

正如immibis在他对你的问题的评论中所述,还有另一种方法可以做你想要的,emplace_back()。您可能希望尝试将方法更改为该方法。我从来没有使用过这种方法,所以除此之外我不能说太多。资料来源:(http://www.cplusplus.com/reference/vector/vector/emplace_back/

相关问题