gpt4 book ai didi

c++ - Visual Studio 2008 - 错误 C2872 : 'NPC' : ambiguous symbol

转载 作者:太空狗 更新时间:2023-10-29 22:58:31 25 4
gpt4 key购买 nike

我尝试更正我的代码中的最后一个错误。我已经将 VS6.0 迁移到 VS2008。

我的最后一个错误在我的 SimpleNPC.cpp 文件中:

.\SimpleNPC.cpp(216) : error C2872: 'NPC' : ambiguous symbol
could be '.\SimpleNPC.cpp(30) : NPC_Editor::NPC `anonymous-namespace'::NPC'
or 'c:\documents and settings\t411\bureau\serveur\server_rc15g\t4c server\NPC_Editor/NPC.h(27) : NPC_Editor::NPC'

这里的错误代码是:

case InsSendSoldItemList:{
std::list< NPC::SoldItem > itemList;
std::list< NPC::SoldItem >::iterator i;
npc->theNpc->GetSoldItemList( itemList );
CreateItemList
for( i = itemList.begin(); i != itemList.end(); i++ ){
AddBuyItem( (*i).price, Unit::GetIDFromName( (*i).itemId.c_str(), U_OBJECT, TRUE ) )
}
SendBuyItemList

文件的开头是:

// SimpleNPC.cpp: implementation of the SimpleNPC class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "TFC Server.h"
#include "SimpleNPC.h"
#include "NPCMacroScriptLng.h"

#undef Command

#include "NPC_Editor/NPC.h"
#include "NPC_Editor/Keyword.h"
#include "NPC_Editor/Command.h"
#include "NPC_Editor/IfFlow.h"
#include "NPC_Editor/Assign.h"
#include "NPC_Editor/ForFlow.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif


using namespace NPC_Editor;

namespace{
typedef list< Instruction * > InstructionList;
typedef NPC_Editor::NPC NPC;

};

在这个文件中我们可以找到这段代码:

std::list< NPC_Editor::NPC::SoldItem > soldItems;

你知道为什么会有冲突吗?谢谢!

最佳答案

using namespace NPC_Editor;

namespace{
typedef list< Instruction * > InstructionList;
typedef NPC_Editor::NPC NPC;
};

首先请注意,您不需要 ; 命名空间的右括号。

using namespace NPC_Editor; 使 NPC 可以从全局范围访问。 typedef NPC_Editor::NPC NPC; 在匿名命名空间中声明名称 NPC,因此可从全局范围访问。

你的问题正是编译器所说的:你有两个可能的符号代表一个名字,这是不明确的。删除 typedef 应该可以解决问题。

关于c++ - Visual Studio 2008 - 错误 C2872 : 'NPC' : ambiguous symbol,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40106323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com