Читать статью на хабре сверху и вот пример по ней
#include
#include
class Path {
private:
std::string path;
public:
Path(const std::string& initialPath) : path(initialPath) {}
// Перегрузка оператора / для конкатенации элементов пути
Path operator/(const std::string& newPathElement) const {
return Path(path + "/" + newPathElement);
}
// Перегрузка оператора /= для добавления элемента пути
Path& operator/=(const std::string& newPathElement) {
path += "/" + newPathElement;
return *this;
}
// Перегрузка оператора вывода объектов Path
friend std::ostream& operator<<(std::ostream& os, const Path& p) {
os << p.path;
return os;
}
};
int main() {
Path p("/home/user");
std::cout << "Initial path: " << p << std::endl;
// Использование оператора / для конкатенации элементов пути
Path newPath = p / "documents" / "txt";
std::cout << "New path after concatenation: " << newPath << std::endl;
// Использование оператора /= для добавления элемента пути
newPath /= "file.txt";
std::cout << "New path after addition: " << newPath << std::endl;
return 0;
}