如何解决错误:重新定义了'get_pointer'T * get_pointerT * pc ++ 11
错误:重新定义'get_pointer'T * get_pointer(T * p)
I am getting the error you see in the picture.
// Itemshop_manager.h
#pragma once
#include "stdafx.h" //error: 4th line
#ifdef ENABLE_ITEMSHOP_SYSTEM
class CItemShopManager : public singleton<CItemShopManager>
{
public:
CItemShopManager();
~CItemShopManager();
void Initialize();
void LoadItems(BYTE bType,DWORD dwCount,TItemShopItem * pItems);
void LoadEditors(DWORD dwCount,TItemShopEditor* pEditors);
TItemShopItem FindItemByID(DWORD id,DWORD category);
void OpenItemShop(LPCHARACTER ch);
void BuyItem(LPCHARACTER ch,DWORD id,DWORD category);
void DeleteItem(LPCHARACTER ch,DWORD category,bool deleteFromDB = true);
void AddItem(LPCHARACTER ch,DWORD vnum,DWORD count,DWORD price,DWORD category);
void EditItem(LPCHARACTER ch,DWORD id);
private:
std::vector<TItemShopItem> m_vec_itemShopItems;
std::set<LPCHARACTER> m_set_pkCurrentViewer;
std::vector<char*> m_vec_pkEditors;
void AddEditor(char* szName);
bool IsEditor(LPCHARACTER ch);
bool IsViewer(LPCHARACTER ch);
void AddViewer(LPCHARACTER ch);
void RemoveViewer(LPCHARACTER ch);
void ViewerChatPacket(BYTE bType,const char * szChat);
};
#endif
// cmd_general.cpp
#ifdef ENABLE_ITEMSHOP_SYSTEM
#include "itemshop_manager.h"//error: line 52
#endif
// Itemshop_manager.cpp
#ifdef ENABLE_ITEMSHOP_SYSTEM
#include "itemshop_manager.h"//error: 8th line
感谢您的帮助。
stdafx.h
template<typename T>
T* get_pointer(T* p)
{
return p;
}
解决方法
您从stdafx.h中丢失了#pragma once
(或include guard)。可能一次或多次从一个.cpp中包含stdafx.h。
但是,如果您打算将stdafx.h用作PCH,则不需要#pragma once
,但stdafx.h仅应包含在.cpp中,而不能包含在任何标头中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。