Задача 4 от Домашното
Здравейте... стигнах до някакво решение на задачата, но ми е много чудно една част от кода, какво точно прави. Ето линк, към условието на домашното: https://judge.softuni.bg/Contests/Compete/DownloadResource/3940
Ето го целия код на програмата:
#include "ResourceType.h"
#include <string>
#include <istream>
#include <ostream>
using namespace std;
namespace SoftUni{
class Resource
{
private:
int id;
ResourceType type;
string link;
public:
Resource() {}
Resource(int id, ResourceType type, std::string link)
: id(id)
, type(type)
, link(link) {}
int getId() const
{
return this->id;
}
ResourceType getType() const
{
return this->type;
}
string getLink() const
{
return this->link;
}
bool operator<(const Resource& other) const
{
return this->id < other.id;
}
};
ostream& operator<<(ostream& out, const Resource& r)
{
return out << r.getId() <<" "<< r.getType() <<" "<< r.getLink();
}
istream& operator>>(istream& in, Resource& r)
{
int id;
string typeString;
string link;
in >> id >> typeString >> link;
ResourceType types;
if (typeString == "Presentation") {
types = ResourceType::PRESENTATION;
}
else if (typeString == "Demo") {
types = ResourceType::DEMO;
}
else if (typeString == "Video") {
types = ResourceType::VIDEO;
}
r = Resource(id, types, link);
return in;
}
}
Въпросът ми е, какво прави следния operator overload:
bool operator<(const Resource& other) const
{
return this->id < other.id;
}
намиращ се вътре в класа Resource.
Като цяло стигнах до някакво решение, но програмата ми изпищя, че тази част липсва и я добавих, но не съм абсолютно наясно какво точно прави.