C++ 将类对象与向量一起使用时出现未解决的外部符号错误

C++ 将类对象与向量一起使用时出现未解决的外部符号错误,c++,vector,C++,Vector,目前正在尝试使用向量在游戏中存储子弹。 当我尝试使用push_back将新对象添加到列表时,我得到一个未解决的外部符号错误。我试着把它改成一个整数,而向量是有效的,所以我怀疑这是链接器错误? 我的向量在我的主CPP中被初始化,然后在一个单独的类中被传递给这个函数几次 这是我的密码: void Hero::shoot(std::vector<Bullet> bullets) { Bullet firedBullet(); bullets.push_back(firedB

目前正在尝试使用向量在游戏中存储子弹。 当我尝试使用push_back将新对象添加到列表时,我得到一个未解决的外部符号错误。我试着把它改成一个整数,而向量是有效的,所以我怀疑这是链接器错误? 我的向量在我的主CPP中被初始化,然后在一个单独的类中被传递给这个函数几次

这是我的密码:

void Hero::shoot(std::vector<Bullet> bullets)
{
    Bullet firedBullet();
    bullets.push_back(firedBullet());
}
void英雄::射击(标准::矢量子弹)
{
子弹火球();
子弹。推回(firedBullet());
}
我的错误是:

LNK2019未解析外部符号“类项目符号” firedBullet(void)“(?firedBullet@@YA?AVBullet@@XZ)在中引用 函数“public:void\uu thiscall Hero::shoot(class std::vector>)” (?shoot@Hero@@QAEXV$vector@VBullet@@V$allocator@VBullet@@@std@@@std@@@Z)project1h:\C++\Project1\Project1\Hero.obj


请提供帮助。

这是因为您声明并调用了一个没有定义的函数

Bullet firedBullet();
声明一个不带参数并返回
项目符号的函数

bullets.push_back(firedBullet());
调用该函数,因此会出现链接器错误。
(我怀疑您在
firedBullet
上添加了括号以使其可编译?)

应该是

Bullet firedBullet;
bullets.push_back(firedBullet);


“我怀疑这是链接器错误”未解析的引用总是链接器错误。当然这是链接器错误。链接器毕竟在抱怨。您没有提供足够的代码来找出确切的原因,因此请提供一个。话虽如此,这个问题可能是Bullet firedBullet()的翻版--这与您认为的不同。它不声明
Bullet
的实例。我打赌链接器正在抱怨你的伪
firebill()
函数。为什么不发布链接器错误?最麻烦的解析,
Bullet firedBullet()
forward声明一个名为
firedBullet
的函数,该函数返回一个
Bullet
,不带任何参数。然后在
项目符号中,向后推(firedBullet())编译器认为您正在调用该函数,但链接器找不到该函数的定义。请原谅,我的第一篇文章仍然在掌握如何提出问题等。链接器错误是指我弄乱了一个外部依赖链接,很抱歉不清楚。将签出链接的帖子。也可以是
项目符号。向后推(Bullet())不带中间声明。
bullets.push_back(Bullet());
bullets.emplace_back();