У меня есть базовый класс, называемый IntList, в файле IntList.h. И унаследованный класс SortedSet в файле SortedSet.h. IntList имеет следующую структуру: -Ошибка сегментации
struct IntNode
{
int data;
IntNode *next;
IntNode(int data) : data(data), next(0) {}
};
Следующий код является другом функция класса SortedSet. Эта функция возвращает объект SortedSet, который является объединением двух объектов 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
Что вы имеете в виду? как я называю это через главную? –