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