-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调用它? –