fatal error LNK1169: one or more multiply defined symbols found
如果把main()里面的code放到LinkList.cpp里面去的话,编译是没问题的。
但是单独拿出来,再编译的话,就会出现fatal error LNK1169: one or more multiply defined symbols found
特来请教高人,先答出者,马上送20分。
//LinkList.h文件:
typedef int ElemType;
#define OK 1
//Á´±í½Óµã½á¹¹Ì嶨Òå [data *next]
// --------------
// |data | *next|
// --------------
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode, *pLinkList;
//Á´±íÀà½Ó¿Ú¶¨Òå
class LinkList
{
public:
LinkList();
~LinkList();
bool InitList();
bool DestroyList();
bool ClearList();
bool IsEmpty();
int GetLength();
int LocateElem(int elem);
bool SetNodeData(int position, ElemType newData);
bool GetNodeData(int position, ElemType &data);
bool GetNode(int position, LNode **node);
bool InsertNode(int beforeWhich, ElemType data);
bool DeleteNode(int position);
private:
pLinkList m_pList;
int m_length;
};
//LinkList.cpp
#include <iostream.h>
#include "LinkList.h"
LinkList::LinkList()
{
m_pList=NULL;
m_length=0;
}
//Ïú»ÙÁ´±í
bool LinkList::DestroyList()
{
if(!ClearList())
{
return false;
}
delete m_pList;
return true;
}
LinkList::~LinkList()
{
if(!DestroyList())
{
DestroyList();
}
}
//½«LÖØÖÃΪ¿Õ±í£¬Ç°ÌáÊÇÏßÐÔ±íLÒÑ´æÔÚ
bool LinkList::ClearList()
{
if (m_pList==NULL)
{
return false;
}
LNode *pTemp=NULL;
while(m_pList->next!=NULL)
{
pTemp=m_pList->next;//pTempÖ¸ÏòµÚÒ»¸ö½Úµã
m_pList->next=pTemp->next;
delete pTemp;
}
m_pList->next=NULL;
m_length=0;
return OK;
}
//³õʼ»¯£¬·ÖÅäÒ»¸öÍ·½Úµã
bool LinkList::InitList()
{
m_pList=new LNode;
if(m_pList==NULL)
return false;
m_pList->next=NULL;
return true;
}
//ÅжÏÁ´±íÊÇ·ñΪ¿Õ£¬ÊÇ¿ÕÔò·µ»Øtrue£¬·ñÔò·µ»Øfalse
bool LinkList::IsEmpty()
{
if(m_pList->next==NULL)
{
return true;
}
else
{
return false;
}
}
//·µ»ØÁ´±íÖе±Ç°½ÚµãÊý
int LinkList::GetLength()
{
return m_length;
}
//½«positionÖ¸¶¨µÄ½ÚµãÄÚµÄÊý¾ÝÉèÖÃΪnewData
//µÚ1¸öÓÐЧ½ÚµãµÄpostionΪ1
bool LinkList::SetNodeData(int position, ElemType newData)
{
LNode *pTemp=NULL;
if(!(GetNode(position,&pTemp)))
{
return false;
}
pTemp->data=newData;
return true;
}
//µÃµ½Ö¸¶¨Î»ÖýڵãµÄÖ¸Õë
bool LinkList::GetNode(int position, LNode **node)
{
LNode *pTemp=m_pList;
int curPos=0;
if (position<1 || position>m_length)
{
return false;
}
while (pTemp!=NULL)
{
curPos++;
if(curPos==position)
break;
pTemp=pTemp->next;
}
if(curPos!=position)
{
return false;
}
*node=pTemp;
return true;
}
//»ñÈ¡position´¦µÄdata
bool LinkList::GetNodeData(int position, ElemType &data)
{
LNode *pTemp=m_pList;
int curPos=0;
if(position<1 || position>m_length)
return false;
while(pTemp!=NULL)
{
if(curPos==position)
break;
pTemp=pTemp->next;
}
if(curPos!=position)
{
return false;
}
data=pTemp->data;
return true;
}
//ÔÚÁ´±íÖвåÈëÒ»¸ö½Úµã
//нڵã²åÈëÔÚbeforeWhich֮ǰ
//beforeWhichȡֵÔÚ(1,length+1)Ö®¼ä
bool LinkList::InsertNode(int beforeWhich, ElemType data)
{
LNode *pTemp=NULL;
if(beforeWhich<1 ||beforeWhich>m_length+1)
{
return false;
}
if(!(GetNode(beforeWhich-1, &pTemp)))
{
return false;
}
LNode *newNode=new LNode;
newNode->data=data;
newNode->next=pTemp->next;
pTemp->next=newNode;
m_length++;
return true;
}
//main()函数:
#include <iostream.h>
#include "LinkList.cpp"
int main()
{
LinkList p;
p.InitList();
p.InsertNode(1,100);
return 1;
}
相关推荐
one or more multiply defined symbols found终极解决.doc
在编程过程中,我们可能会遇到一个常见的链接错误:`LNK1169` 和 `LNK2005`。这两个错误通常出现在C或C++项目中,涉及到符号(如全局变量、函数等)被多次定义。
前端开发组件示例源码_f1b6a91d详解
前端开发组件示例源码_f1b6a91d,内容包含源码/脚本与使用说明文档,结构清晰、注释完整,适合学习参考与二次开发,下载解压即可查看。
前端开发基于history.js的HTML5与HTML4浏览器兼容方案:单页应用无刷新历史状态管理技术实现-Gjl4Gf1792158475
内容概要:本文系统介绍了如何利用history.js实现单页应用(SPA)在HTML5c与HTML4浏览器间s草错发的无缝历史状态管理。通过封装原生History API并在不支持的浏览器中自动降级为哈希路由,history.js解决了因浏览器兼容性导致的后退按钮失效、URL混乱等问题。文章详细讲解了其核心机制,包括状态对象管理、自动模式切换(HTML5 pushState vs HTML4 哈希)、状态数据持久化以及针,对Safari、IE等浏\览器的兼容性修复方案,并提供了从入门到实战的完整示例,涵盖初始化、事,件监听、页面加载及性能优化技巧。;Gjl4Gf1792158475 www.gblp.net www.gsctlq.com gezhixq.cn www.greendalian.com wap.gxqnm.com
前端开发基于history.js的HTML5与HTML4浏览器兼容方案:单页应用无刷新历史状态管理技术实现-5Z6jeSqI1792158476
内容概要:本文系统介绍了如何利用history.js实现单页应用(SPA)在HTML5c与HTML4浏览器间s草错发的无缝历史状态管理。通过封装原生History API并在不支持的浏览器中自动降级为哈希路由,history.js解决了因浏览器兼容性导致的后退按钮失效、URL混乱等问题。文章详细讲解了其核心机制,包括状态对象管理、自动模式切换(HTML5 pushState vs HTML4 哈希)、状态数据持久化以及针,对Safari、IE等浏\览器的兼容性修复方案,并提供了从入门到实战的完整示例,涵盖初始化、事,件监听、页面加载及性能优化技巧。;5Z6jeSqI1792158476 sdhmgggw168.com www.shangliangwangye.com www.sdbing.net migu.blsxex.abxlbz.sc.cn www.safespeed.net.cn
高校如何通过科技报告服务提升技术转移转化效率?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。


