Перегрузка операций с++? Всем привет. Пытаюсь разобраться с ооп. Задали такую лабу: 1. Определить класс согласно варианту задания (табл.1, столбец 2). 2. Определить и реализовать в классе конструкторы, деструктор, функции Input (ввод с клавиатуры) и Print (вывод на экран), перегрузить операцию присваивания. 3. Дополнить определение класса заданными перегруженными операциями (согласно варианту, табл.1., Столбец 2,3). 4. Реализовать эти сделки. Выполнить тестирование. Вроде как все понятно, но даны такие значения: 9. Рабочий: фамилия, оклад, год поступления на работу Операция1: Определить сколько работников с одинаковым именем Операция2: Уменьшить оклад работнику Как можно перегрузить операцию 1:? Не могу понять этого.
Для перегрузки операции 1 - "Определить сколько работников с одинаковым именем" можно создать функцию-член класса, которая будет принимать на вход имя работника и считать количество работников с таким же именем. Например, можно определить следующую функцию в классе Рабочий:
int countWorkersWithSameName(const std::string& name) { int count = 0; if (this->surname == name) { count++; } return count; }
Затем при вызове этой операции для объекта класса Рабочий можно будет передать имя и получить количество работников с таким именем.
Что касается операции 2 - "Уменьшить оклад работнику", ее можно перегрузить с помощью перегрузки оператора "-", например:
Для перегрузки операции 1 - "Определить сколько работников с одинаковым именем" можно создать функцию-член класса, которая будет принимать на вход имя работника и считать количество работников с таким же именем. Например, можно определить следующую функцию в классе Рабочий:
int countWorkersWithSameName(const std::string& name) {int count = 0;
if (this->surname == name) {
count++;
}
return count;
}
Затем при вызове этой операции для объекта класса Рабочий можно будет передать имя и получить количество работников с таким именем.
Что касается операции 2 - "Уменьшить оклад работнику", ее можно перегрузить с помощью перегрузки оператора "-", например:
Worker& operator-=(double decreaseAmount) {this->salary -= decreaseAmount;
return *this;
}
Этот оператор будет уменьшать оклад работнику на указанную сумму.
Надеюсь, это поможет вам разобраться с перегрузкой операций в C++. Если у вас есть еще вопросы, не стесняйтесь задавать.