Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как перезагружать оператор? Объясните пожалуйста В С++

,el Ученик (88), на голосовании 6 месяцев назад
Голосование за лучший ответ
Krab Bark Искусственный Интеллект (294857) 7 месяцев назад
Никак. Перезагрузить оператор невозможно. Его можно только перегрузить. А как - не стоит сюда перепечатывать статью - читай, например, тут -
https://habr.com/ru/articles/489666/
username Знаток (441) 7 месяцев назад
читай, долго объяснять, у каждого оператора свой принцип перегрузки
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (264399) 7 месяцев назад
Читать статью на хабре сверху и вот пример по ней

 #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;
}
Радик Маратович Ученик (3) 7 месяцев назад
создаешь класс с конструктором с одинаковым именем и он принимает значения
условно класс foo
foo(int)
foo(string)
foo(vector)
в зависимости от того какое значение ты передаешь в конструктор или функцию тот конструктор или функция выполнится выполнится
Похожие вопросы