fatal error LNK1169: one or more multiply defined symbols found

basecoding basecoding 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
最近开始做数据结构方面的编程,简单的问题,却出现LINK方面的问题。
如果把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++项目中,涉及到符号(如全局变量、函数等)被多次定义。

wulin031024

前端开发组件示例源码_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

2601_97196179

前端开发基于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

2601_97196179

高校如何通过科技报告服务提升技术转移转化效率?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN
评论 8
收藏 已收藏
分享
返回顶部
basecoding
VC/MFC 16,550 成员 421,606 内容