如何解决错误 - 声明与函数实现期间不兼容
我正在尝试从另一个项目中实现一个功能,在移植过程中,我在下一篇文章的标题中遇到了上述错误。
我有一个包含函数声明的文件。
ObjectMgr.h
class ObjectMgr
{
friend class PlayerDumpReader;
private:
ObjectMgr();
~ObjectMgr();
std::unique_ptr<PlayerInfo> _playerInfo[MAX_RACES][MAX_CLASSES];
public:
(...)
PlayerInfo const* GetPlayerInfo(uint32 race,uint32 class_) const;
(...)
ObjectMgr.cpp
/* Error on GetPlayerInfo
* E0147 declaration is incompatible with "const PlayerInfo *ObjectMgr::GetPlayerInfo(uint32
* race,uint32 class_) const" (declared at line 756 of "D:\_AZEROTHCORE\AZEROTHCORE-
* WOTLK\SRC\SERVER\GAME\GLOBALS\ObjectMgr.h") game D:\_azerothcore\azerothcore-
* wotlk\src\server\game\Globals\ObjectMgr.cpp 9163
*/
PlayerInfo const* ObjectMgr::GetPlayerInfo(uint32 race,uint32 class_) const
{
if (race >= MAX_RACES)
return nullptr;
if (class_ >= MAX_CLASSES)
return nullptr;
auto const& info = ObjectMgr::_playerInfo[race][class_];
if (!info)
return nullptr;
return info->get();
}
这让我很困惑,因为我确实导入了头文件,并且名称和类型完全相同。可能是因为我有另一个错误
info->get()
?
解决方法
这确实是一个返回类型问题。通过将类型更改为:
来解决PlayerInfo* _playerInfo[MAX_RACES][MAX_CLASSES];
和
PlayerInfo* info = _playerInfo[race][class_];
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。