以下是程式碼:
class ListNode{
friend class LinkList ;
ListNode(){count=0;runlength=0;size=1;};
void AddCount(){count++;};
~ListNode();
private:
int count;
ListNode *rlink;
int runlength; //[runlength , size]`
int size;
};
class LinkList{
public:
LinkList(){ first = 0 , last = first; };
void AddNode(int , int);
void CheckSymbol( int , int );
~LinkList();
private:
ListNode *first;
ListNode *last;
};
void LinkList::AddNode( int runlength , int size)
{
ListNode *newnode= new ListNode ;
if (!first)
{first=newnode;
last=first;
last->runlength=runlength;
last->size=size;}
else{
last->rlink=newnode;
last=newnode;
last->runlength=runlength;
last->size=size;
}
}
void LinkList::CheckSymbol( int runlength , int size)
{
{
ListNode *CurrentNode ;
CurrentNode = first;
do{
if((CurrentNode==last) && (CurrentNode->runlength==runlength ||
CurrentNode->size==size))
{
AddNode(runlength , size);
}
if( CurrentNode->runlength==runlength && CurrentNode->size==size
)
{
CurrentNode->AddCount();
}
if((CurrentNode+1)!=last)
{
CurrentNode=CurrentNode->rlink;
}
}while(CurrentNode!=last);
}
在main裡面多寫一行 LinkList NewNode; 就會出現error msg
RLC4.obj : error LNK2001: 無法在外部之程式庫中找到或連結所需之資料型別或函式的
符號 "public: __thiscall LinkList::~LinkList(void)" (??1LinkList@@QAE@XZ)
Debug/VLCencod.exe : fatal error LNK1120: 1 個無法在外部程式庫中找到或連結所需
之資料型別或函式
可是把LinkList NewNode;這行給//掉的話 程式compiler & link就都會過 也可以run
請教一下高手我該怎麼設定才對,還是應該程式該怎麼修改才會可以link呢?
p.s 以下是compile的命令列所有選項:
/O2 /GL /FD /EHsc /Fx /Fo"Debug/" /Fd"Debug/vc70.pdb" /W0 /nologo /c /Gz
--
[32m※ [1;36m風信遊子 [35m(bbs.cm.nctu.edu.tw) [37m ★ [33mPost From: [34m 140.112.207.62 [m★ [m
不過我現在在class裡面寫~LinkList();
然後member function寫
LinkList::~LinkList()
{
LinkNode* current=first; //start at beginning
while( current != 0 ) //until end of list
{
LinkNode* pTemp=current; //remember current
current=current->rlink; //move to next link
delete pTemp; //delete old current
} //while//
}
還是會出現錯誤訊息:
------ 已開始建置: 專案: VLCencod, 組態: Debug Win32 ------
正在編譯...
RLC4.cpp
正在連結...
RLC4.obj : error LNK2019: 無法在外部之程式庫中找到或連結所需之資料型別或函式的符號 "private: __thiscall LinkNode::~LinkNode(voi
d)" (??1LinkNode@@AAE@XZ),於函式 "private: void * __thiscall LinkNode::`scalar deleting destructor'(unsigned int)" (??_GLinkNode@@AAEPAXI@Z) 中參考
Debug/VLCencod.exe : fatal error LNK1120: 1 個無法在外部程式庫中找到或連結所需之資料型別或函式
已將建置記錄儲存於 "file://g:\Homework\Dvt\Hw3\code\test1\VLCencod\Debug\BuildLog.htm"
VLCencod - 2 個錯誤,0 個警告
--
[m◆ [37m從 [31m 140.112.207.62 [37m來的水榭訪客 [m
--
[1;37m自由心靈的天堂§ [36m玲瓏水榭 [37m( [36mSungSung.Dragon2.Net [37m)§ [m
--
手好痛啊...
--
[m [1;33;46m〒作者:cplusplus 來自:219053.D13-219.ncu.edu.tw [m
[1;36m◎二進位的世界 [37m【140.115.50.50‧binary.csie.ncu.edu.tw】