-2
我在IntList.h文件中有一個名爲IntList的基類。在SortedSet.h文件中有一個名爲SortedSet的繼承類。 的intList中具有以下結構: -分割錯誤
struct IntNode
{
int data;
IntNode *next;
IntNode(int data) : data(data), next(0) {}
};
下面的代碼是在SortedSet的類友元函數。該函數返回SortedSet對象,該對象是2 SortedSet對象的並集,即此二元運算符的左側和右側操作數。
SortedSet operator|(const SortedSet &lho, const SortedSet &rho)
{
SortedSet temp;
IntNode* set1 = lho.head;
IntNode* set2 = rho.head;
while(set1->next != 0)
{
temp.push_back(set1->data);
set1 = set1->next;
}
delete set1;
while(set2->next != 0)
{
if (temp.in(set2->data) == false)
{
temp.push_back(set2->data);
//cout<<"It isn't in there"<<endl;
}
set2 = set2->next;
}
delete set2;
return temp;
}
我得到一個分段錯誤,我似乎無法修復它。任何幫助,將不勝感激。謝謝!
這聽起來像你可能需要學習如何使用調試器來逐步執行代碼。使用一個好的調試器,您可以逐行執行您的程序,並查看它與您期望的偏離的位置。如果你打算做任何編程,這是一個重要的工具。延伸閱讀:** [如何調試小程序(http://ericlippert.com/2014/03/05/how-to-debug-small-programs/)** – NathanOliver
你能張貼調用堆棧? – user16
你是什麼意思?我如何通過main調用它? –