Если вы хотите сохранить значения в очереди, ваш код должен быть изменен:
WebPage CrawlerQueue::getWebPage() {
if (pagesBuffer.size() > 0) {
WebPage page = pagesBuffer.front();
pagesBuffer.pop();
return page;
} else
throw "Web pages queue is empty!";
}
При использовании C ++ вам необходимо иметь четкое представление о различиях между значениями и ссылкамии указатели.Вы также должны знать, что крайне маловероятно, что стиль кодирования, который работает в Java, будет работать в C ++ - эти два языка не имеют почти ничего общего, за исключением некоторых тривиальных синтаксических сходств.это:
void PageParser::extractLinks(){
try {
WebPage & page = crawlerqueue.getWebPage();
}catch (const char * error) {
return;
}
}
Тихое глотание исключений всегда очень плохая идея, так как (обычно) ловит очень близко к месту броска.