Перегрузка операторов вне и внутри класса
В ТЗ моей работы указано, что перегрузка операторов должна выполняться как вне, так и внутри класса.
Я не совсем понимаю как это работает и хотел попросить Вашего совета. В моем понимании перегрузка оператора внутри класса - это:
class foo {
public:
foo();
foo operator + (foo arg);
}
Тогда как быть с выполнением вне класса..
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
У вас —
class foo{
public:
foo();
foo operator + (const foo& arg);
}
оператор объявлен в классе, как функция-член класса. Но его можно объявить и вне класса, как свободную функцию, просто записав его с двумя аргументами:
foo operator+(const foo& arg1, const foo& arg2)
{
...
}