C++/Operator overloading

Материал из Энциклопедия о программировании
Перейти к: навигация, поиск

Перегрузка операторов (operator overloading) в C++ — один из способов реализации полиморфизма, заключающийся в возможности одновременного существования в одной области видимости нескольких различных вариантов применения оператора, имеющих одно и то же имя, но различающихся типами параметров, к которым они применяются.

Синтаксис

Всегда надо обязательно писать const, так как функция переопределения оператора всегда должна быть константной.

Примеры

struct Cmpr {
	bool operator()(Bar lft, Bar rgt) const {
		return lft.prp < rgt.prp;
	}
};

Структура Cmpr в которой идёт перегрузка оператора () (круглые скобки), которая вернёт true в случае, если свойство prp левого элемента lft меньше свойства prp правого rgt элемента, и — false в противном случае. Сравнение будет идти по свойству/переменной prp.