Зачем перегружать операции? с++

244
14 сентября 2017, 17:31

Доброго времени суток.

Мне нужно создать класс с методом

y(z) = 7.2*sin(z) + (2-z) 

и при этом использовать перегрузку операций.

В разрабатываемом классе перегрузите потоковые операции для объектов класса. Для выполнения задания предложенного варианта перегрузите необходимые математические операции.

Я уже почитал об перегрузке операций, но не совсем понимаю как ее тут можно применить... Пытался найти подобный пример в поисковике, но что-то не вышло. Так зачем в данном задании использовать перегрузку операций?

Answer 1

Насколько я понимаю, должно получиться примерно так:

class DoubleWrapper{
  double value;
  public:
  DoubleWrapper(): value{0} {} 
  explicit DoubleWrapper(double v): value{v} {}
  DoubleWrapper(const DoubleWrapper&) = default;
  // Потоковый оператор для вывода значения 
  friend std::ostream& operator << (std::ostream& out, DoubleWrapper rha){
    return out << value;
  }
  friend DoubleWrapper operator - (double lha, DoubleWrapper rha){
     return DoubleWrapper{lha - rha.value};
  }
};
...
DoubleWrapper v2 {2};
DoubleWrapper v7 = 9 - v2;
std::cout << v7; // 7
...
DoubleWrapper y (DoubleWrapper z){
   retun 7.2*sin(z) + (2-z);
}

Нужно добавить остальные мат. операции и функцию sin(DoubleWrapper). Только фраза "конструктор преобразования базового типа к типу, определяемому разрабатываемым классом" у меня вызывает недоумение.

READ ALSO
Класс-итератор c++

Класс-итератор c++

Доброго времени суток! У меня есть класс для хранения двусвязного списка (аналог std::list), мне нужно написать класс-итератор перебирающий элементы...

303
Не менять размер qtablewidget при изменении размера окна

Не менять размер qtablewidget при изменении размера окна

Есть QTableWidget с двумя столбцами и 2 QGroupBox(объединенные по вертикали сплиттером)Таблица выполняет роль меню и, соответственно, не должна изменять...

230
Где найти функцию _getws()?

Где найти функцию _getws()?

В инвалидной программе используется функция _gettsПри использовании: #define UNICODE Компилятор начинает орать: '_getws' was not declared at this scope А если без...

271
Массив без выхода за пределы C++

Массив без выхода за пределы C++

Мне нужно массив или вектор без выхода за пределыЧто это такое? допустим Создаю вектор или массив на 10 символов типа int Все 10 элементов равны...

276