Доброго времени суток.
Мне нужно создать класс с методом
y(z) = 7.2*sin(z) + (2-z)
и при этом использовать перегрузку операций.
В разрабатываемом классе перегрузите потоковые операции для объектов класса. Для выполнения задания предложенного варианта перегрузите необходимые математические операции.
Я уже почитал об перегрузке операций, но не совсем понимаю как ее тут можно применить... Пытался найти подобный пример в поисковике, но что-то не вышло. Так зачем в данном задании использовать перегрузку операций?
Насколько я понимаю, должно получиться примерно так:
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). Только фраза "конструктор преобразования базового типа к типу, определяемому разрабатываемым классом" у меня вызывает недоумение.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Доброго времени суток! У меня есть класс для хранения двусвязного списка (аналог std::list), мне нужно написать класс-итератор перебирающий элементы...
Есть QTableWidget с двумя столбцами и 2 QGroupBox(объединенные по вертикали сплиттером)Таблица выполняет роль меню и, соответственно, не должна изменять...
В инвалидной программе используется функция _gettsПри использовании: #define UNICODE Компилятор начинает орать: '_getws' was not declared at this scope А если без...
Мне нужно массив или вектор без выхода за пределыЧто это такое? допустим Создаю вектор или массив на 10 символов типа int Все 10 элементов равны...